web-dev-qa-db-ja.com

最高の圧縮方法?

16GBフォルダーを圧縮したいのですが、最良の方法は何ですか? tar.gz? tar.bz2 rar? 7z?最初にメソッドで圧縮し、圧縮したアーカイブを新しいフォルダーにコピーしてから、他の方法で再圧縮すると、アーカイブは小さくなりますか? DVDに収める必要があります(出力は8.5GBかもしれませんが、覚えていません)が、「4370 MB」を入れると圧縮ファイルは2.5GBになります。

ところで、Ubuntuのデフォルトの圧縮方法は何ですか?

51
Amanda

デフォルトはgzです。しかし、7zで最高の結果が得られます。

1.4 Gbのvirtualboxコンテナの結果は次のとおりです。

enter image description here

最高の圧縮– MB単位のサイズ:

7z 493 
 rar 523 
 bz2 592 
 lzh 607 
 gz 614 
 Z 614 
 Zip 614 
。 arj 615 
 lzo 737 
 Zoo 890 

ソース

enter image description here

インストール

 Sudo apt-get install p7Zip-full
69
Rinzwind

この質問は非常に古いですが、おそらく誰かがこの解決策を有用だと思うでしょう:

rzipの後にtarを使用します。最初にディクショナリ方式を使用して900 MBの大きなデータブロックを圧縮し、クリーンアップされたデータをbzip2に渡します。他の強力な圧縮ツール(bzip2lzma)よりもはるかに高速であり、一部のファイルはbzip2またはlzmaよりもさらに圧縮されます。

はい、gzはLinuxのデフォルトの圧縮ツールです。それは高速であり、その古さにもかかわらず、ソースコードのようなテキストファイルを圧縮するのに非常に良い結果をもたらします。もう1つの標準ツールはbzip2ですが、はるかに遅いです。

追加: lrzipはより新しく、rzipの原則を拡張します。無制限のブロックサイズ、および圧縮方法の選択(LZMA、Bzip2、Gzip、LZO、ZPAQまたはなし)もサポートしています。 LZMAが標準です。バックアップや、他のLinux/BSDユーザーと多くのデータを共有する場合、非常に便利です。

14
user258532

LZMAを選択します。バイトオーバーヘッドが最も小さく、圧縮率が高くなっています。 ZipとLZMAの比較:PHPコードでseq.txtの2つのファイルを生成しました

$s = '0123456789'; $str = ''; for ($i=0; $i < 1000000; $i++) $str .= $s[$i%10].($i%10==9 ? "\n":""); file_put_contents('seq.txt', $str);

0..9桁のデータと1MbのデータとPHPコードを含むrnd.txtの繰り返しブロックを保持します

$s = '0123456789'; $str = ''; for ($i=0; $i < 1000000; $i++) $str .= $s[Rand(0,9)].($i%10==9 ? "\n":""); file_put_contents('rnd.txt', $str);

これは、0..9桁から1Mbのデータのランダムブロックを保持します。

圧縮結果:

  • seq.txt、rnd.txt-1100000バイト
  • seq.txt.Zip-2502バイト
  • rnd.txt.Zip-515957バイト
  • seq.txt.lzma-257バイト
  • rnd.txt.lzma-484939バイト

圧縮比:

  • Zip-> "seq.txt"-> 99.772%
  • Zip-> "rnd.txt"-> 53.094%
  • LZMA-> "seq.txt"-> 99.976%
  • LZMA-> "rnd.txt"-> 55.914%

したがって、LZMAは、Zipよりもシーケンシャルデータを0.2%効率的に圧縮しています。
およびランダムデータは、Zipよりも2.8%効率的です。

確かにLZMAが勝ちます!

2