it-swarm.com.de

Welche Dateikomprimierungssoftware für Linux bietet die höchste Größenreduzierung?

Ich mache eine Menge Dateikomprimierung. Das meiste, was ich komprimiere, ist nur Code, daher muss ich verlustfreie Komprimierung verwenden. Ich habe mich gefragt, ob es etwas gibt, das eine bessere Größenreduzierung bietet als 7Zip. Es spielt keine Rolle, wie lange es dauert, die Größe zu komprimieren oder zu dekomprimieren. Kennt jemand eine solche Software unter Linux? Oder ist 7Zip das Beste?

54
Zach

7Zip Ist eher ein Verdichter (wie PKZIP) als ein Kompressor. Es ist für Linux verfügbar, kann jedoch nur komprimierte Archive in regulären Dateien erstellen. Es kann beispielsweise keinen Stream komprimieren. Die meisten Unix-Dateiattribute wie Besitz, ACLs, erweiterte Attribute, Hardlinks ... können nicht gespeichert werden.

Unter Linux haben Sie als Kompressorxz, das denselben Komprimierungsalgorithmus wie 7Zip (LZMA2) verwendet. Sie können es verwenden, um Teerarchive zu komprimieren.

Wie für gzip und bzip2 Gibt es eine parallele Variante pixz, die mehrere Prozessoren nutzen kann, um die Komprimierung zu beschleunigen (xz kann dies auch nativ seit Version 5.2.0 mit der Option -T tun. Die Variante pixz unterstützt auch Indizierung ein komprimiertes tar Archiv, was bedeutet, dass eine einzelne Datei extrahiert werden kann, ohne dass die Datei von Anfang an dekomprimiert werden muss.

42

lrzip ist das, wonach Sie suchen wirklich, besonders wenn Sie Quellcode komprimieren!

Zitieren der README:

Dies ist ein Komprimierungsprogramm, das für große Dateien optimiert ist. Je größer die Datei und je mehr Speicher Sie haben, desto besser ist der Komprimierungsvorteil, den dies bietet, insbesondere wenn die Dateien größer als 100 MB sind. Der Vorteil kann entweder als Größe (viel kleiner als bzip2) oder als Geschwindigkeit (viel schneller als bzip2) gewählt werden. [...] Das einzigartige Merkmal von lrzip ist, dass es versucht, den verfügbaren RAM in Ihrem System jederzeit optimal zu nutzen, um den größtmöglichen Nutzen zu erzielen.

lrzip sucht zunächst nach einer Redundanz für Ferndaten und entfernt diese mit einem rzip-basierten Algorithmus, dann komprimiert die nicht redundanten Daten.

Con Kolivas bietet ein fantastisches Beispiel in der Linux Kernel Mailing List ; Dabei komprimiert er einen 10,3-GB-Tarball von vierzig Linux-Kernel-Releases auf 163,9 MB (1,6%) und dies schneller als xz. Er benutzte nicht einmal den aggressivsten Second-Pass-Algorithmus!

Ich bin sicher, Sie werden großartige Ergebnisse erzielen, wenn Sie massive Tarballs mit Quellcode komprimieren :)

Sudo apt-get install lrzip

Beispiel (Standard für andere Optionen verwenden):

Ultrakompression, Hund langsam:

lrzip -z file

Ändern Sie für Ordner einfach lrzip für lrztar

70

Wenn Sie unabhängig von der Komprimierungsgeschwindigkeit nach der größten Größenreduzierung suchen, ist LZMA wahrscheinlich die beste Option.

Beim Vergleich der verschiedenen Kompressionen ist der Kompromiss im Allgemeinen Zeit gegen Größe. gzip neigt dazu, relativ schnell zu komprimieren und zu dekomprimieren, während sich ein gutes Komprimierungsverhältnis ergibt. bzip2 Ist sowohl in der Komprimierungs- als auch in der Dekomprimierungszeit etwas langsamer als gzip, ergibt jedoch noch größere Komprimierungsverhältnisse. LZMA hat die längste Komprimierungszeit, liefert jedoch die besten Verhältnisse und weist gleichzeitig eine Dekomprimierungsrate auf, die die von bzip2 übertrifft.

Quellen: 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

(aktualisierte Antwort) Wenn die Zeit keine Rolle spielt, verwenden Sie ZPAQ v1.10 (oder neuer), z.
zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tar (Der Speicherort der max.cfg-Datei kann variieren. Überprüfen Sie die Liste der installierten Paketdateien.)

zpaq komprimierte tatsächlich mehr als kgb -9 newFileName.kgb yourFileName.tar.
Das basiert auf einem älteren Algorithmus PAQ6 und ist sehr langsam ...
Ich habe mit allen anderen Kompressoren wie 7Zip, lrzip, bzip2, kgb .. und zpaq am meisten komprimiert getestet!

Wenn kgb Sie immer noch interessiert, tho: (da es meine ursprüngliche Wahl für diese Antwort war, behalte ich die Informationen hier)
Ubuntu 14.04 hat kgb 1.0b4 , führen Sie Sudo apt-get install kgb Aus, um es zu installieren.

Im Folgenden geht es um eine Windows-Version, mit der Sie versuchen können, kgb unter Linux auszuführen/zu kompilieren, aber es ist mir nicht gelungen.
Version 2 Beta2 ist auf SourceForge zu finden, es sind jedoch keine Linux-Binärdateien verfügbar. Sie können versuchen, es in der Konsole mit wine kgb2_console.exe -a7 -m9 Auszuführen (Methode -a6 -m9 Scheint der besten Methode in 1.0b4 zu entsprechen, -a7 Ist neu in 2 Beta2). Obwohl ich eine bessere Stabilität hatte, indem ich .NET 2.0 mit winetricks installierte und wine "KGB Archiver 2 .net.exe" Ausführte (ich mag das nicht ein bisschen, also bleibe ich bei nativem Linux 1.0b4, das hat fast das gleiche Ergebnis wie 2 beta2).
Wie auch immer, Version 2 Beta2 verdient ernsthaft auch eine native Linux-Version! Vielleicht kann mit MinGW etwas erreicht werden, siehe this , aber dieser Befehl schlägt immer noch schlecht fehl: i586-mingw32msvc-g++ kgb2_console.cpp -o kgb. Vielleicht versuchen Sie es mit dmcs (Mono) zu kompilieren? siehe dieser Tipp .

4
Aquarius Power

7Zip ist keine einzigartige Technologie, unterstützt jedoch verschiedene Komprimierungsmethoden (siehe Wikipedia 7z dazu).

Ein Testsatz wurde mit verschiedenen Tools speziell für C-Quelldateien durchgeführt. Ich bin nicht sicher, welche der Tools für Linux existieren, wenn sie noch existieren. Möglicherweise stellen Sie jedoch fest, dass der beste Algorithmus PPM mit Änderungen (PPMII, dann PPMZ)) war.

Wenn Sie an den Tools interessiert sind, können Sie die Website durchsuchen. Sie ist auf Russisch, aber Google Übersetzer kann hilfreich sein. Es gibt eine große Anzahlung von Binärdateien , die Sie unter Linux mit Wein verwenden können (oder nicht können), wenn dies wirklich benötigt wird.

2