web-dev-qa-db-ja.com

Linux用のどのファイル圧縮ソフトウェアが最大のサイズ削減を提供しますか?

大量のファイル圧縮を行います。私が圧縮しているもののほとんどはコードだけなので、損失の少ない圧縮を使用する必要があります。 7Zipよりも良いサイズ縮小を提供するものがあるかどうか私は思っていました。サイズを圧縮または解凍するのにかかる時間は問題ではありません。 Linuxでこのようなソフトウェアを知っている人はいますか?それとも7Zipは最高ですか?

54
Zach

7Zipは、コンプレッサーよりも(PKZIPのような)コンパクターです。 Linuxで利用できますが、通常のファイルでのみ圧縮アーカイブを作成できます。たとえば、ストリームを圧縮することはできません。所有権、ACL、拡張属性、ハードリンクなどのUnixファイル属性のほとんどを保存することはできません...

Linuxでは、compressorとして、7Zip(LZMA2)と同じ圧縮アルゴリズムを使用するxzを取得します。 tarアーカイブの圧縮に使用できます。

gzipbzip2の場合と同様に、parallelバリアントpixzがあり、複数のプロセッサを活用して圧縮を高速化できます(xz canまた、バージョン5.2.0以降、-Tオプションを使用してネイティブに実行します)。 pixzバリアントはindexing圧縮tarアーカイブもサポートします。つまり、最初からファイルを解凍することなく、単一のファイルを抽出できます。

42

lrzip とはreally探しているespeciallyソースコードを圧縮している場合!

READMEを引用:

これは大きなファイル用に最適化された圧縮プログラムです。特にファイルが100MBを超えると、ファイルが大きくなり、メモリが多くなるほど、圧縮の利点が向上します。利点は、サイズ(bzip2よりはるかに小さい)または速度(bzip2よりはるかに速い)のいずれかを選択できます。 [...] lrzipの独自の機能は、最大限の利益を得るために、システムで利用可能なRAMを常に最大限に活用しようとすることです。

lrzipは、最初にrzipベースのアルゴリズムで長距離データの冗長性をスキャンして削除し、、非冗長データを圧縮して機能します。

Con Kolivasは Linuxカーネルメーリングリストの素晴らしい例 ;を提供しています。ここで、彼はfortyの10.3GB tarballを163.9MB(1.6%)に圧縮し、xzよりも高速に圧縮しています。彼は最もアグレッシブなセカンドパスアルゴリズムさえ使用していませんでした!

ソースコードの巨大なtarballを圧縮すると素晴らしい結果が得られると思います:)

Sudo apt-get install lrzip

例(他のオプションにデフォルトを使用):

超圧縮、低速犬:

lrzip -z file

フォルダの場合、lrziplrztarに変更するだけです

70

圧縮速度に関係なく最大のサイズ削減を求めている場合、LZMAがおそらく最良のオプションです。

さまざまな圧縮を比較するとき、一般にトレードオフは時間とサイズの関係です。 gzipは、良好な圧縮率を得ながら、比較的迅速に圧縮および解凍する傾向があります。 bzip2は、圧縮時間と解凍時間の両方でgzipよりも少し遅いですが、圧縮率はさらに高くなります。 LZMAは圧縮時間が最も長くなりますが、最適な比率が得られると同時に、bzip2よりも優れた解凍率が得られます。

ソース: http://bashitout.com/2009/08/30/Linux-Compression-Comparison-GZIP-vs-BZIP2-vs-LZMA-vs-Zip-vs-Compress.html

http://tukaani.org/lzma/benchmarks.html

6
j883376

(回答の更新)時間に問題がない場合は、ZPAQ v1.10(またはそれ以降)を使用します。例:
zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tar(max.cfgファイルの場所は異なる場合があります。インストール済みのパッケージファイルリストを確認してください)

zpaqは実際にはkgb -9 newFileName.kgb yourFileName.tarよりも圧縮されています。
これは古いアルゴリズム PAQ6 に基づいており、非常に低速です...
最も圧縮された7Zip、lrzip、bzip2、kgb ..、zpaqなどの他のすべてのコンプレッサーでテストしました!

kgbがまだあなたに興味がある場合:(これがこの回答の最初の選択だったので、ここに情報を保管しています)
Ubuntu 14.04には kgb 1.0b4 が含まれています。Sudo apt-get install kgbを実行してインストールしてください。

以下は、Linuxでkgbを実行/コンパイルできるWindowsバージョンについてですが、成功しませんでした。
バージョン2 beta2は SourceForge にありますが、Linuxバイナリは使用できません。 wine kgb2_console.exe -a7 -m9を使用してコンソールで実行してみることができます(メソッド-a6 -m9は1.0b4の最適なメソッドと同等であるようです。-a7は2 beta2の新機能です)。 winetricks を使用して.NET 2.0をインストールし、wine "KGB Archiver 2 .net.exe"を実行することで、安定性は向上しましたが(私はそれを少し好きではないので、 2ベータ2と同じ結果。
とにかく、バージョン2のベータ2もLinuxネイティブバージョンに値するものです。たぶん、MinGWで何かを実行できます。 this を参照してください。ただし、このコマンドはまだ失敗します:i586-mingw32msvc-g++ kgb2_console.cpp -o kgbdmcs(Mono)でコンパイルしてみませんか? this tip を参照してください。

4
Aquarius Power

7Zipは独自のテクノロジーではありませんが、いくつかの異なる圧縮方法をサポートしています(ウィキペディア7zを参照)。

一連のテスト は、Cソースファイル専用のさまざまなツールを使用して実行されました。 Linux用のツールがまだ存在するかどうかはわかりません。ただし、最適なアルゴリズムはPPM変更(PPMII、PPMZ))でした。

ツールに興味がある場合は、サイトを閲覧できます。これはロシア語ですが、Google翻訳が役立つ場合があります。 binaries の大きな預金があります。本当に必要な場合は、Linuxからwineを使用できます(または使用できません)。

2