Tar
為什麼 tar/gzip 不會壓縮兩個相似的大目錄?
很久以前,在我嘗試增量備份和差異備份之前,我嘗試對幾個類似的大 (1 GB) 目錄進行 tar/gzip 壓縮,但它們的壓縮效果並不比單獨對每個目錄進行 tarring 和 gzip 壓縮更好。我猜為什麼它不起作用是這樣的:
- tar 可能不會將重複的文件放在一起
- 因為文件距離很遠,它們將位於單獨的 gzip DEFLATE 塊中,因此不會一起壓縮(我也問過多遠)
這個推理正確嗎?
是的,您的推理是正確的,因為 tar 不按副檔名對文件進行排序(這可能有助於實現更高的壓縮比)並且
gzip
是一種非常古老的壓縮算法,具有相對適中的字典,只有 32KB。請嘗試使用
xz
orp7zip
代替。這是一個壓縮字元串,它可以讓我在 Linux 下實現最高的壓縮比:
7za a -mx=9 -myx=9 -mfb=273 -bt -slp -mmt4 -md=1536m -mqs archive.7z [list of files]
這需要大量記憶體(至少 32GB 的 RAM)。如果您刪除
-mmmt4
並將字典大小減小到 1024m,則 16GB 就足夠了。說到為
tar
. 幾年前我寫了一個腳本:https ://github.com/birdie-github/useful-scripts/blob/master/tar_sorted