tar / gzipが2つの同様の大きなディレクトリを圧縮できないのはなぜですか?

tar / gzipが2つの同様の大きなディレクトリを圧縮できないのはなぜですか?

ずっと前に増分バックアップと差分バックアップを試みる前に、同じサイズ(1 GB)の複数のディレクトリをtar / gzipで試しましたが、各ディレクトリを個別にtarとgzipに圧縮するよりも優れていませんでした。なぜ動作しないのかについての私の推測は次のとおりです。

  1. tarは重複したファイルを結合できません。

  2. ファイルが離れているため、別のgzip DEFLATEチャンクに圧縮されないため、一緒に圧縮されません。どれだけ遠く)

この推論は正しいですか?

答え1

はい、tarはファイルを拡張子でソートせずに(より高い圧縮率を達成するのに役立ちます)、gzip比較的適切な辞書(32KB)を使用する非常に古い圧縮アルゴリズムであるため、あなたの推論は正確です。

xzまたは代わりに試してみてくださいp7zip

以下は、Linuxで最高の圧縮率を達成できる圧縮文字列です。

7za a -mx=9 -myx=9 -mfb=273 -bt -slp -mmt4 -md=1536m -mqs archive.7z [list of files]

これには多くのメモリ(最小32 GB RAM)が必要です。削除し-mmmt4て辞書サイズを1024mに減らすと、16GBで十分です。

tar数年前、私は次のスクリプトを書いていました。https://github.com/birdie-github/useful-scripts/blob/master/tar_sorted

関連情報