Linux-Dateikomprimierungsoptionen und Vergleich

Linux File Compression Options



Komprimierung ist im Allgemeinen eine nützliche Methode, bei der Informationen im Wesentlichen mit weniger Daten als dem Original kodiert werden. Bei Linux gibt es verschiedene Komprimierungsoptionen mit jeweils eigenen Vorteilen.

Eine generische Linux-Distribution bietet Zugriff auf eine Handvoll wirklich nützlicher und einfacher Komprimierungsmechanismen. Dieser Artikel wird sich nur auf sie konzentrieren.







Kompressionsarten

Komprimierung ist das Kodieren und Darstellen von Informationen mit weniger Bits als ursprünglich. Bei der Dateikomprimierung verwendet eine Komprimierungsmethode einen eigenen Algorithmus und eine mathematische Berechnung, um eine Ausgabe zu erzeugen, die im Allgemeinen kleiner ist als die Größe der Originaldatei. Aufgrund der unterschiedlichen Komprimierungsfunktionen und der zufälligen Natur der Dateien kann die Laufleistung stark variieren.



Es gibt 2 Arten der Kompression.



  • Verlustbehaftete Kompression : Dies ist eine riskante Art der Komprimierung, die keine Datenintegrität garantiert. Grundsätzlich besteht nach der Komprimierung die Gefahr, dass die Originaldatei mit dem komprimierten Archiv nicht rekonstruiert werden kann.
    Ein solides Beispiel für diese Art der Komprimierung ist das bekannte MP3-Format. Wenn eine MP3-Datei aus der Original-Audiodatei erstellt wird, ist sie deutlich kleiner als die Original-Quellmusikdatei. Dies führt zu einem gewissen Verlust der Audioqualität.
  • Verlustfreie Kompression : Dies ist die am häufigsten verwendete Komprimierungsart. Mit einem verlustfreien Komprimierungsverfahren kann die Originaldatei aus der komprimierten Datei rekonstruiert werden. Die Komprimierungsmethoden, die ich in diesem Artikel besprechen werde, sind alle verlustfreie Komprimierungsmethoden.

Linux-Komprimierung

Die meisten Komprimierungsmethoden sind über das Tool verfügbar Teer . Was die Zip-Komprimierung betrifft, verwenden wir die Postleitzahl Werkzeug. Angenommen, auf Ihrem System sind diese Tools bereits installiert, fangen wir an.





Zuerst benötigen wir eine Testdatei. Führen Sie den folgenden Befehl aus, um einen zu erstellen.

$base64/Entwickler/Urgrund| Kopf -C 20000000 >Datei.txt



Es wird eine Textdatei mit einer Größe von 20 MB erstellt.

Lassen Sie uns nun 10 Kopien der Datei erstellen. Zusammen sind es 200 MB.

Reißverschluss für Kompression

Zip ist weit verbreitet. Zum Erstellen einer Zip-Datei benötigt das Zip-Tool die folgende Befehlsstruktur.

$Postleitzahl <Ausgang>.Postleitzahl<Eingang>

Führen Sie diesen Befehl aus, um alle Dateien im Testverzeichnis in einer einzigen ZIP-Datei zu komprimieren.

$Postleitzahltest.zip*

Die Eingabegröße betrug 200 MB. Nach der Komprimierung sind es jetzt 152 MB!

Standardmäßig wendet das Zip-Tool die DEFLATE-Komprimierung an. Es ist jedoch auch in der Lage, die bzip2-Komprimierung zu verwenden. Darüber hinaus können Sie auch passwortgeschützte Zip-Dateien erstellen! Erfahren Sie mehr über zip .

Tar für Komprimierung unter Linux

Tar ist keine Komprimierungsmethode. Stattdessen wird es am häufigsten zum Erstellen von Archiven verwendet. Es kann jedoch eine Reihe beliebter Komprimierungsmethoden für das Archiv implementieren.

Für den Umgang mit tar-Archiven (auch als Tarball bekannt) gibt es das tar-Tool. Erfahren Sie mehr über tar. Im Allgemeinen verwendet das tar-Tool die folgende Befehlsstruktur.

$Teer <Optionen> <Ausgabedatei> <Eingang>

Führen Sie den folgenden Befehl aus, um die Testdateien zu einem einzelnen tar-Archiv hinzuzufügen.

$Teer -cvftest.tar*

Dabei bleibt die Dateigröße gleich.

Gzip zur Komprimierung unter Linux

GNU Zip oder gzip ist eine weitere beliebte Komprimierungsmethode, die meiner Meinung nach aufgrund ihrer besseren Komprimierung besser ist als die herkömmliche Zip. Es ist ein Open-Source-Produkt von Mark Adler und Jean-Loup Gailly, das ursprünglich dazu bestimmt war, das UNIX zu ersetzen Kompresse Dienstprogramm.

Für die Verwaltung von gzip-Archiven stehen 2 Tools zur Verfügung: tar und gzip. Schauen wir uns beide an.

Zuerst das gzip-Tool. So sieht die gzip-Befehlsstruktur aus.

$gzip <Möglichkeit> <Eingang>

Der folgende Befehl ersetzt beispielsweise test1.txt durch die komprimierte Datei test1.txt.gz.

$gzip -vtest1.txt

Wenn Sie ein ganzes Verzeichnis mit gzip komprimieren möchten, führen Sie diesen Befehl aus. Hier dient das Flag -r für die rekursive Komprimierung. Gzip durchsucht alle Ordner und komprimiert die einzelnen Dateien in jedem von ihnen.

$gzip -R <Ordnerpfad>

Gzip unterstützt verschiedene Werte für die Kompressionsstärke, beginnend von 1 (geringste Kompression, schnellste) bis 9 (beste Kompression, langsamste).

$gzip -v -9 <Datei>

Für eine bessere Kontrolle über die Ausgabe und Benutzerfreundlichkeit ist tar für diese Aufgabe besser geeignet. Führen Sie den folgenden Befehl aus.

$Teer -cvzftest.tar.gz*

Das Ergebnis ist ähnlich wie beim Zip mit DEFLATE, was nach der Komprimierung zu 152 MB führt.

Bzip2 zur Komprimierung unter Linux

Bzip2 ist ein kostenloses Open-Source-Tool, das den Burrows-Wheeler-Algorithmus zur Komprimierung verwendet. bzip2 wurde erstmals 1996 eingeführt und wird häufig als Alternative zur gzip-Komprimierung verwendet.

Wie gzip gibt es zwei Tools, um mit bzip2 zu arbeiten: tar und bzip2.

Das bzip2-Tool funktioniert ähnlich wie das gzip-Tool. Es kann immer nur mit einer einzigen Datei gleichzeitig arbeiten. Hier ist die Befehlsstruktur.

$bzip2 <Möglichkeit> <Eingang>

Komprimieren wir die Datei test1.txt. Hier steht das Flag -v für den ausführlichen Modus.

$bzip2 -vtest1.txt

Ähnlich wie gzip unterstützt auch bzip2 verschiedene Komprimierungsgrade, beginnend von 1 (Standard, geringer Speicherverbrauch) bis 9 (extreme Komprimierung, hoher Speicherverbrauch).

$bzip2 -v -9 <Datei>

Die bessere Möglichkeit, die bzip2-Komprimierung zu verwenden, ist die Verwendung von tar. Verwenden Sie den folgenden Befehl.

$Teer -cvjftest.tar.bz2*

Die Komprimierung ist etwas verbessert als die vorherigen. Jetzt ist die Dateigröße auf 151,7 MB geschrumpft.

XZ für die Komprimierung unter Linux

Es ist ein relativer Neuling im Bereich der Kompression. Es wurde 2009 erstmals veröffentlicht und hat seitdem ein stetiges Wachstum der Nutzung erfahren.

Das xz-Komprimierungstool verwendet den LZMA2-Algorithmus, der im Vergleich zu gzip und bzip2 für ein höheres Komprimierungsverhältnis bekannt ist, was es zu einer guten Wahl macht, wenn Sie den maximalen Speicherplatz sparen möchten. Dies geht jedoch mit dem Preis eines höheren Speicherbedarfs und Zeitaufwands einher.

Die vom XZ-Komprimierungstool erstellte Datei hat die Erweiterung .xz. Zum Komprimieren einer einzelnen Datei können Sie das XZ-Tool direkt aufrufen.

$xz<Möglichkeit> <Datei>

Führen Sie beispielsweise den folgenden Befehl aus, um die Datei test1.txt zu komprimieren.

$xz-vtest1.txt

Ähnlich wie bei anderen erwähnten Kompressionsmethoden unterstützt xz auch verschiedene Kompressionsstärken, beginnend von 1 (geringste Kompression, schnellste) bis 9 (beste Kompression, langsamste). Wenn Sie keine Zeit haben und einfach nur Platz sparen möchten, dann gehen Sie zum Extrem.

$xz-v -9 <Datei>

Führen Sie diesen Befehl aus, um eine komprimierte XZ-Datei aus allen Testdateien zu erstellen.

$Teer -cvJftest.tar.xz*

Hier beträgt die Ausgabedateigröße 153,7 MB.

Extrahieren komprimierter Archive

Das Extrahieren der von uns erstellten Archive ist einfacher als das Erstellen. Um eine ZIP-Datei zu extrahieren, verwenden Sie die folgende Befehlsstruktur.

$entpacken <Dateiname>.Postleitzahl-D <Ziel>

Führen Sie diesen Befehl aus, um das von uns erstellte Zip-Archiv zu extrahieren. Dadurch werden alle Inhalte im selben Verzeichnis extrahiert.

$entpackentest.zip

Zum Extrahieren von tar-, tar.gz-, tar.bz2- und tar.xz-Archiven müssen wir die Teer Werkzeug. Der folgende tar-Befehl ist anwendbar, um alle zu extrahieren.

$Teer -xvf <Archiv_Dateiname>

Lassen Sie uns zum Beispiel alle Dateien aus dem komprimierten bz2-Archiv extrahieren.

$Teer -xvftest.tar.bz2

Führen Sie diesen Befehl aus, um eine gzip-Datei (nicht tar.gz) zu dekomprimieren.

$gzip -D <gzip_file>

Ebenso dekomprimiert der folgende Befehl das bzip2-Archiv.

$bzip2 -D <bzip2_file>

Dieselbe Befehlsstruktur gilt für das xz-Archiv.

$xz-D <xz_Datei>

Abschließende Gedanken

Hoffentlich haben Sie jetzt genug Wissen, um die Komprimierungsaufgaben unter verschiedenen Umständen zu bewältigen. Je nach Anforderung bieten alle Komprimierungsverfahren sehr attraktive Features.

Es ist wichtig zu beachten, dass das Komprimierungsergebnis nicht immer gleich ist. Bei unterschiedlicher Dateneingabe wird die Ausgabe unterschiedlich sein. Zum Beispiel kann xz in einigen Fällen ein wahnsinniges Komprimierungsergebnis liefern, während dies in diesem Beispiel nicht der Fall war. Gleiches gilt für andere Methoden.

Weitere Informationen zu diesen Tools finden Sie auf der jeweiligen Manpage.

$Mann Postleitzahl