2016-11-24 16 views

回答

1

你可以試試下面的命令:

$ cd /home/log 

$ tar zcvf /home/archive/xyz.gz * 
+0

請注意,一行中的四個空格前綴呈現代碼塊中的控制檯I/O,請參閱我的編輯。 – halfer

+0

謝謝 這是目前工作的目錄意味着從「/ home/log」。 如果我想從其他路徑運行此命令,如「/ home/usr/script」 –

+0

需要更改一次。我不想爲所有日誌文件創建單個存檔文件,而是要爲所有日誌創建單獨的.gz文件。我怎樣才能做到這一點? –

0

可以使用--transform選項脫光使用sed espression從存檔文件名中的開頭的路徑組件:

tar -C /home/log -zcvf /home/archive/xyz.gz --transform 's_.*/__' /home/log 

然而,這也將爲每個遇到的目錄寫一個條目。如果你不希望出現這種情況,你可以使用find只查找常規文件,並將它們傳遞給tar的標準輸入這樣的:

cd /home/log 
find -type f -print0 | tar -zcvf /home/archive/xyz.gz --transform 's_.*/__' --verbatim-files-from --null -T - 

注意,這可能會在tar歸檔文件創建具有相同名稱的多個條目,如果具有相同名稱的文件存在於不同的子目錄中。另外,您應該使用傳統的.tar.gz.tgz擴展名來存儲壓縮的tar歸檔文件。

相關問題