Backup

使用 tar、gzip 和 pigz 進行遞歸壓縮是否安全?

  • February 15, 2017

如果我做一個.tar.gz通過

tar czvf - ./myfiles/ | pigz -9 -p 16 > ./mybackup.tar.gz,

我可以通過./myfiles/an_old_backup.tar.gz _ _ ./myfiles_

gzip -d mybackup.tar.gz
tar -xvf mybackup.tar
cd myfiles
gzip -d an_old_backup.tar.gz
tar -xvf an_old_backup.tar

? 並且可以無限安全地進行這種遞歸壓縮嗎?

如果您的問題可以改寫為“可以在壓縮檔案中包含壓縮檔案嗎?”,那麼答案是“是”。

這可能不是最方便的(正如您所注意到的,您必須執行 tar 幾個文件才能將所有內容解包),並且對已經壓縮的數據應用壓縮可能不會額外減少大小,但一切都會奏效.

tar czvf - ./myfiles/ | pigz -9 -p 16 > ./mybackup.tar.gz

相當於

tar cvf - ./myfiles/ | gzip | pigz -9 -p 16 > ./mybackup.tar.gz

您獲得的不是 atar.gz而是 a tar.gz.gz,一個壓縮兩次的存檔,而不是壓縮文件的壓縮存檔。

那是沒有意義的。壓縮輸出不可壓縮。通過壓縮兩次,您不會獲得任何顯著的空間增益。而對於提取,您還需要解壓縮兩次

gunzip < mybackup.tar.gz | gunzip | tar xf -

或者

gunzip < mybackup.tar.gz | tar xzf -

如果您想使用pigz而不是 plaingzip進行壓縮,只需執行以下操作:

tar cvf - ./myfiles/ | pigz -9 -p 16 > ./mybackup.tar.gz

你可以用它解壓縮tar zxvf mybackup.tar.gz

另請注意,您永遠不必解壓縮tar.gz文件並將未壓縮的版本儲存在磁碟上。gzip/ pigzbzip2/ pbzip2xz/之類的壓縮器的全部意義pixz在於它們可以在流上工作,您只需將它們插入管道中即可。

引用自:https://unix.stackexchange.com/questions/344057