Tar

為什麼 tar/gzip 不會壓縮兩個相似的大目錄?

  • July 10, 2020

很久以前,在我嘗試增量備份和差異備份之前,我嘗試對幾個類似的大 (1 GB) 目錄進行 tar/gzip 壓縮,但它們的壓縮效果並不比單獨對每個目錄進行 tarring 和 gzip 壓縮更好。我猜為什麼它不起作用是這樣的:

  1. tar 可能不會將重複的文件放在一起
  2. 因為文件距離很遠,它們將位於單獨的 gzip DEFLATE 塊中,因此不會一起壓縮(我也問過多遠

這個推理正確嗎?

是的,您的推理是正確的,因為 tar 不按副檔名對文件進行排序(這可能有助於實現更高的壓縮比)並且gzip是一種非常古老的壓縮算法,具有相對適中的字典,只有 32KB。

請嘗試使用xzorp7zip代替。

這是一個壓縮字元串,它可以讓我在 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

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