2012-04-20 36 views
0
$ tar -zcvf archive/test.tar.gz files 

會給我如下:消除目錄hiearchy同時tar。

files/ 
files/1 
files/2 
files/3 

-

$ tar -zcvf archive/test.tar.gz -C files . 

會給我如下:

./ 
./1 
./2 
./3 

我無法找出正確的焦油命令輸出如下。

1 
2 
3 

回答

1

您使用--transform選項,這需要一個SED表達。

--transform="s/^\.\///" 

應該具有預期的效果。

編輯糟糕,看起來像這樣會在tar歸檔中留下一個前導'./'條目,這可能是不可取的。使用@ paulsm的答案可能更簡單,但它可能會錯過隱藏文件(以。開頭的文件)。

+0

$ tar -zcvf archive/test.tar.gz -C文件--transform =「s /^\.//」......那是對的嗎? – 2012-04-20 20:25:49

+0

這將是正確的命令行,但它似乎我不得不在一個真正的系統上正常工作 – Petesh 2012-04-20 20:27:29

+0

我在ubuntu上試了一下它說tar:無效的轉換表達式 – 2012-04-20 20:35:06

0

個人而言,我只是:

cd files 
tar -zcvf /full-path/archive/test.tar.gz * 
+0

theres問題,我不想cd到不同的目錄,然後腳本失去其執行環境。 :( – 2012-04-20 20:28:14