web-dev-qa-db-ja.com

LinuxのZip / gzip圧縮率はWindowsよりもはるかに低い

Linuxマシンに、圧縮して圧縮したい非常に大きなファイルがたくさんあります。スペースを節約してください。 tar/gzipの組み合わせを使用してみましたが、圧縮率があまり良くないことに気づきました。 1.2GBファイルは1.1GBファイルに圧縮されました。ここで提案されているように、圧縮レベルを上げてみました: tar -zcvfを使用するときに圧縮レベルを指定する方法は?

しかし、それでもそれ以上のことはありませんでした。同じファイルをWindowsマシンにコピーし、WinRarを実行しました。結果の圧縮ファイルのサイズは0.45GBのみでした。

そのような大きな食い違いの理由はありますか? Linux用のより良い圧縮ツールはありますか?

UPDATE:私はlzmaを試しましたが、それでもそれほど良くはありません

2
ryuusenshi

GzipRar と比較してあまり良いアルゴリズムではありません。

最近のLinuxでより一般的な方法は bzip2 で、これはほとんどすべてのLinuxディストリビューションにデフォルトでインストールされています。

コマンドラインをtar -cvjfではなくtar -cvzfに変更することで、tarアーカイバをbzip2圧縮を使用するように切り替えることができます。キーはzjオプションで。

これにより、圧縮率が大幅に向上するはずです。

不一致の理由は、それらが圧縮のための根本的に異なるアルゴリズムであるためです。 Gzipは古いアルゴリズムであり、古いアルゴリズムは計算量が少ない傾向があるため、妥当な時間で終了します。これは、より簡単に利用できる処理能力の効果であり、古いコンピューターで行った古いアルゴリズムと同じ時間で終了する、より優れた、より計算量の多いアルゴリズムを使用できます。逆に、古いアルゴリズムは、新しいコンピューターではるかに高速に圧縮を完了します。

ほとんどすべてのWindowsアーカイバはLinux上で同等のものを持っています。 7Zip は、Windowsで良好な結果が得られ、非公式のLinuxバージョンを持つ素晴らしいアーカイバです。

3
Mokubai