2011-06-28 60 views
0

我想創建一個目錄中的所有文件的tar文件減去該目錄中的子目錄,然後將該tar文件放在其中一個子目錄中,目錄的。例如,我在/ test中有幾個.txt文件,在/ test中有另一個名爲ArchivedFiles的目錄。我想告訴tar命令將所有.txt文件歸檔並放在/ test/ArchivedFiles中。
我該如何去做這件事?在要歸檔的目錄的子目錄中創建一個tar文件

回答

1
tar cf test/foo/test.tar -- `find test -maxdepth 1 -name '*.txt' -type f` 

我認爲應該做你想做的。

,不會因你的tar命令的年齡正常工作的選項是:

find test -maxdepth 1 -type f -name '*.txt' -print0 | tar -cf test/foo/test.tar --null --files-from - 

你有問題,所以你可以嘗試下面的命令:

tar cf test/foo/test.tar `find test -maxdepth 1 -name '*.txt' -type f` 
echo tar cf test/foo/test.tar `find test -maxdepth 1 -name '*.txt' -type f` 
tar c f test/foo/test.tar `find test -maxdepth 1 -name '*.txt' -type f` 
find test -maxdepth 1 -name '*.txt' -type f 

而且引擎收錄的輸出,以便我們可以看到發生了什麼。

因爲發現是很傳統的爲好,讓我們嘗試以下操作:

tar cf test/foo/test.tar test/*.txt 
+0

這給了我:用法:焦油{C | R | T | U | X} [bBdDEfFhilLXmNopRsSUvw [0-9] [Blocks] [TarFile] [InputList] [ExcludeFile] [[Feet] | [英尺@密度] | [Blocksb]] [-C目錄]文件... – Ben

+0

@Ben:哪個命令?此外,你使用的是什麼版本的焦油? –

+0

@Ben:另外,你的任何.txt文件都有空格,還是以 - 字符開頭?如果你正在運行第一個版本(可能你是最好的,因爲你有這樣一個老版本的tar),那麼如果你仍然有問題併發布結果,那麼在echo命令前面加上前綴,以便我們可以看到發生了什麼問題。 –

0

以下命令將工作。它會將所有子目錄放入tar中,但不會將這些子目錄的內容放入tar中。這意味着如果你把焦油放到一個子目錄中,你將不必擔心它將自己放入其本身內部...

例如,如果你想把所有在當前目錄成tar文件名爲mytar.tar這是一個子目錄稱爲D1:

tar --no-recursion -cvf d1/mytar.tar * 
+0

從使用消息中,它看起來非常類似於OP正在使用一個非常舊的(遺留)焦油。沒有GNU焦油與所有花哨的選項。 –

相關問題