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

51

Ich mache eine Tonne Dateikomprimierung. Die meisten Dinge, die ich komprimiere, sind nur Code, daher muss ich weniger Komprimierung verwenden, um Verluste zu vermeiden. Ich habe mich gefragt, ob es etwas gibt, das eine bessere Größenreduzierung bietet als 7zip. Es spielt keine Rolle, wie lange das Komprimieren oder Dekomprimieren dauert. Auf die Größe kommt es an. Kennt jemand eine solche Software unter Linux? Oder ist 7zip das Beste?

Zach
quelle

Antworten:

37

7zipist 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. Beispielsweise kann es keinen Stream komprimieren. Es ist nicht in der Lage, die meisten Unix-Dateiattribute wie Eigentümer, ACLs, erweiterte Attribute, feste Links ... zu speichern.

Unter Linux als Kompressor , haben Sie , xzdass der gleichen Kompressionsalgorithmus wie verwendet 7zip(LZMA2). Sie können es verwenden, um Tar-Archive zu komprimieren.

Wie für gzipund bzip2gibt es eine parallele Variante pixz, die mehrere Prozessoren nutzen kann, um die Komprimierung zu beschleunigen ( xzkann dies seit Version 5.2.0 mit der -TOption auch von Haus aus tun ). Die pixzVariante unterstützt auch die Indizierung eines komprimierten tarArchivs, was bedeutet, dass eine einzelne Datei extrahiert werden kann, ohne dass die Datei von Anfang an dekomprimiert werden muss.

Stéphane Chazelas
quelle
6
Können Sie die Unterscheidung zwischen "Verdichter" und "Kompressor", die Sie hier machen, erweitern?
Mattdm
2
@mattdm, ein Kompressor komprimiert nur, ein Kompaktor komprimiert mehrere Dinge in ein komprimiertes Archiv.
Stéphane Chazelas
2
@mattdm, komisch. Es war eine sehr verbreitete Terminologie und Unterscheidung in den 90er Jahren, sieht aus wie aus einer Google-Suche, es ist nicht mehr der Fall.
Stéphane Chazelas
6
Vielleicht war es eine DOS-Sache? In Unix wird üblicherweise zwischen Komprimierung und Archivierung unterschieden (wie Sie auch sagen), aber ich habe noch nie "Verdichtung" gehört.
Mattdm
1
@mattdm, na ja, compact ist archive + compress (möglicherweise mit Indexierung, möglicherweise separat komprimierte Mitglieder), Archivierung impliziert keine Komprimierung. Es ist keine DOS-Sache, aber möglicherweise war es eine französische Sache. Wenn ich Usenet-Archive google, scheine ich nur auf Artikel von mir zu stoßen, also könnte es durchaus meine Erfindung gewesen sein, obwohl ich fest davon überzeugt bin, dass dies nicht der Fall ist.
Stéphane Chazelas
65

lrzip ist , was Sie wirklich suchen, vor allem , wenn Sie Quellcode sind komprimiert!

Zitieren der README:

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

lrzip sucht zunächst mit einem rzip-basierten Algorithmus nach Datenredundanz über große Entfernungen und entfernt diese. Anschließend werden die nicht redundanten Daten komprimiert.

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

Ich bin sicher, Sie werden großartige Ergebnisse beim Komprimieren massiver Tarballs von Quellcode erzielen :)

sudo apt-get install lrzip

Beispiel (Standard für andere Optionen verwenden):

Ultra-Kompression, Hund langsam:

lrzip -z file

Ändern Sie lrzipfür Ordner nur fürlrztar

Alexander Riccio
quelle
1
Ich kann auch behaupten, dass dies lrzipauch sehr gut für Backups von Dateibäumen von tar/cpio/paxEd-Systemen funktioniert, da diese normalerweise viele Redundanzen mit großer Reichweite enthalten, was lrzipsich sehr gut zum Komprimieren eignet.
Franki
10
Ich habe versucht lrzipund pixzauf eine 19 GB Textdatei. Beide brauchten ungefähr eine halbe Stunde, um es zu komprimieren (auf einem Hexa-Core-Computer), aber die lrzDatei war halb so groß wie die xzDatei (2,7 gegenüber 4,4 GB). Also noch eine Stimme für diese Antwort statt.
Fnl
3
@Franki mit "Wettbewerb", meinst du "attestieren"?
Mitchus
Fühlt sich an wie Rattenfänger!
Denys Vitali
1
Wissen Sie, was der Unterschied zwischen lrzip und rzip sein würde? rzip scheint im Jahr 1998 veröffentlicht worden zu sein und wurde entwickelt, um sehr große Dateien mit Langstreckenredundanz optimal zu bearbeiten. Es klingt also ähnlich wie lrzip. Sie fragen sich nur, ob lrzip von rzip abgeleitet wurde? (rzip von rzip.samba.org )
Astara
6

Wenn Sie unabhängig von der Komprimierungsgeschwindigkeit die größtmögliche Größenreduzierung wünschen, LZMAist dies wahrscheinlich die beste Option.

Beim Vergleich der verschiedenen Komprimierungen ist der Kompromiss im Allgemeinen Zeit vs. Größe. gzipneigt dazu, relativ schnell zu komprimieren und zu dekomprimieren, während sich ein gutes Kompressionsverhältnis ergibt. bzip2ist etwas langsamer als gzipsowohl in der Komprimierungs- als auch in der Dekomprimierungszeit, ergibt jedoch noch größere Komprimierungsverhältnisse. LZMAhat die längste Komprimierungszeit, liefert aber die besten Verhältnisse, während die Dekomprimierungsrate die von übertrifft bzip2.

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

j883376
quelle
1
Ich muss in diesem Punkt anderer Meinung sein! Der verlustfreie Dateikomprimierer, der unabhängig von der unter GNU / Linux möglichen Komprimierungsgeschwindigkeit den größten Reduktionsfaktor bietet, ist wahrscheinlich entweder zpaqoder paq8l. Sie sind jedoch so langsam, dass sie für die meisten realen Anwendungen unpraktikabel sind.
Franki
@Franki cool sudo apt-get install zpaq, ich habe einige Tests gemacht, laut Wiki , dass die App die neueste von 2009 sein würde, aber sie verliert immer noch für kg (die PAQ6 verwendet), aber kg ist VIEL langsamer ...
Aquarius Power
@Franki eigentlich, ich habe gerade festgestellt, dass zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tarkomprimiert mehr alskgb -9
Aquarius Power
4

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

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

Wenn kgbdich noch
immer Folgendes interessiert: (Da dies meine erste Wahl für diese Antwort war, behalte ich die Informationen hier) Ubuntu 14.04 hat kgb 1.0b4 , starte es , um es sudo apt-get install kgbzu installieren.

Im Folgenden geht es um eine Windows-Version, die Sie unter kgbLinux ausführen / kompilieren können , die mir jedoch nicht gelungen ist.
Version 2 Beta2 ist auf SourceForge verfügbar, es sind jedoch keine Linux-Binärdateien verfügbar. Sie können versuchen, es in der Konsole mit auszuführen wine kgb2_console.exe -a7 -m9(Methode -a6 -m9scheint der besten Methode in 1.0b4 zu entsprechen, -a7ist neu in 2 Beta2). Obwohl ich durch die Installation von .NET 2.0 mit Winetricks und dem Laufen eine bessere Stabilität hatte wine "KGB Archiver 2 .net.exe"(ich mag das ein bisschen nicht, also bleibe ich bei nativem Linux 1.0b4, das fast dasselbe Ergebnis wie 2 Beta2 hat).
Wie auch immer, Version 2 Beta2 verdient ernsthaft eine native Linux-Version! Vielleicht kann mit MinGW etwas erreicht werden, siehe dies , aber dieser Befehl schlägt immer noch fehl:i586-mingw32msvc-g++ kgb2_console.cpp -o kgb. Vielleicht versuchen Sie es mit dmcs(Mono) zu kompilieren ? siehe diesen tipp .

Wassermann Power
quelle
2

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

Eine Reihe von Tests wurde mit verschiedenen Tools speziell für C-Quelldateien durchgeführt. Ich bin mir nicht sicher, welches der Tools für Linux noch vorhanden ist. Sie können jedoch feststellen, dass der beste Algorithmus PPM mit Modifikationen (PPMII, dann PPMZ) war.

Wenn Sie an den Tools interessiert sind, können Sie die Website durchsuchen. Sie ist auf Russisch, aber Google Translate kann hilfreich sein. Es gibt eine große Anzahl von Binärdateien , die Sie bei Bedarf unter Linux mit Wein verwenden können (oder nicht können).

Jaroslaw Nikitenko
quelle