So komprimieren und entpacken Sie Dateien mit Gzip unter Linux


Linux-Terminal auf rotem Hintergrund.
fatmawati achmad zaenuri/Shutterstock.com

Es gibt viele Dienstprogramme zur Dateikomprimierung, aber dasjenige, das Sie garantiert auf jeder Linux-Distribution finden, ist gzip. Wenn Sie nur lernen, ein Komprimierungstool zu verwenden, sollte dies der Fall sein gzip .

VERBUNDEN: Wie funktioniert die Dateikomprimierung?

Algorithmen und Bäume

Das gzip Das Datenkomprimierungstool wurde in den frühen 1990er Jahren geschrieben und ist immer noch in jeder Linux-Distribution zu finden. Es sind andere Komprimierungstools verfügbar, aber egal auf welchem ​​​​Linux-Computer Sie arbeiten müssen, Sie werden fündig gzip darauf. Also, wenn Sie wissen, wie man es benutzt gzipSie können loslegen, ohne etwas installieren zu müssen.

gzip ist eine Implementierung des DEFLATE-Algorithmus, der erfunden wurde—und patentiert-von Phil Katze von PKZIP Ruhm. Der DEFLATE-Algorithmus verbesserte frühere Komprimierungsalgorithmen, die alle mit Variationen eines Themas arbeiteten. Die zu komprimierenden Daten werden gescannt, und eindeutige Zeichenfolgen werden identifiziert und einem binären Baum hinzugefügt.

Den eindeutigen Zeichenfolgen wird aufgrund von ein eindeutiger ID-Token zugewiesen ihre Position im Baum. Die Token werden verwendet, um die Zeichenfolgen in den Daten zu ersetzen, und da die Token kleiner sind als die Daten, die sie ersetzt haben, wird die Datei komprimiert. Durch das Ersetzen der Tokens für die ursprünglichen Zeichenfolgen werden die Daten wieder in ihren unkomprimierten Zustand aufgeblasen.

Der DEFLATE-Algorithmus fügte die Wendung hinzu, dass den am häufigsten vorkommenden Zeichenfolgen die kleinsten Token zugewiesen wurden und den am seltensten auftretenden Zeichenfolgen größere zugewiesen wurden. Der DEFLATE-Algorithmus beinhaltete auch Ideen von zwei früheren Komprimierungsmethoden, Huffman-Codierung und LZ77-Komprimierung.

Zum Zeitpunkt des Schreibens ist der DEFLATE-Algorithmus fast drei Jahrzehnte alt. Vor drei Jahrzehnten waren die Kosten für die Datenspeicherung hoch und die Übertragungsgeschwindigkeiten langsam. Die Datenkomprimierung war von entscheidender Bedeutung.

Die Datenspeicherung ist heute viel billiger und die Übertragungsgeschwindigkeiten sind um Größenordnungen höher. Aber wir haben so viel mehr Daten zu speichern, und Menschen auf der ganzen Welt greifen auf Cloud-Speicher und Streaming-Dienste zu. Datenkomprimierung ist immer noch lebenswichtig wichtig, auch wenn Sie nur etwas verkleinern, das Sie hochladen oder übertragen müssen, oder wenn Sie versuchen, Speicherplatz auf einer lokalen Festplatte zurückzugewinnen.

Der gzip-Befehl

Je größer eine Datei ist, desto besser kann die Komprimierung sein. Dies hat zwei Gründe. Einer ist, dass es in einer großen Datei viele wiederholte, identische Folgen von Bytes geben wird. Der zweite Grund ist, dass die Liste der Zeichenfolgen und Token in der komprimierten Datei gespeichert werden muss, damit die Dekomprimierung stattfinden kann. Bei einer sehr kleinen Datei kann dieser Overhead die Vorteile der Komprimierung zunichte machen. Aber selbst bei einer ziemlich kleinen Datei ist wahrscheinlich eine gewisse Größenreduzierung zu verzeichnen.

Komprimieren einer Datei

Um eine Datei zu komprimieren, müssen Sie lediglich den Namen der Datei an die übergeben gzip Befehl. Wir überprüfen die Originalgröße der Datei, komprimieren sie und überprüfen dann die Größe der komprimierten Datei.

ls -lh calc-sheet.ods
gzip calc-sheet.ods
ls -lh cal-*

Komprimieren einer Tabelle

Die Originaldatei, eine Tabelle namens „calc-sheet.ods“, ist 11 KB groß, und die komprimierte Datei – auch als Archivdatei bekannt – ist 9,3 KB groß. Beachten Sie, dass der Name der Archivdatei der Name der Originaldatei mit dem Anhang „.gz“ ist.

Der erste Einsatz der ls Der Befehl zielt auf eine bestimmte Datei ab, die Tabellenkalkulation. Die zweite Verwendung von ls sucht nach allen Dateien, die mit „calc-“ beginnen, findet aber nur die komprimierte Datei. Das liegt daran, dass standardmäßig gzip erstellt die Archivdatei und löscht die Originaldatei.

Das ist kein Problem. Wenn Sie die Originaldatei benötigen, können Sie sie aus der Archivdatei abrufen. Aber wenn Sie es vorziehen, die Originaldatei beizubehalten, können Sie die -k (beibehalten) Option.

gzip -k calc-sheet.ods
ls -lh calc-sheet.*

Komprimieren einer Datei und Beibehalten der Originaldatei

Diesmal bleibt die ursprüngliche ODS-Datei erhalten.

Dekomprimieren einer Datei

Um eine GZ-Archivdatei zu dekomprimieren, verwenden Sie die -d (dekomprimieren) Option. Dadurch wird die komprimierte Datei aus dem Archiv extrahiert und dekomprimiert, sodass sie nicht mehr von der Originaldatei zu unterscheiden ist.

ls calc-sheet.*
gzip -d calc-sheet.ods.gz
ls calc-sheet.*

Dekomprimieren einer Datei mit gzip

Diesmal können wir das sehen gzip hat die Archivdatei nach dem Extrahieren der Originaldatei gelöscht. Um die Archivdatei aufzubewahren, müssen wir die verwenden -k (Keep)-Option erneut, sowie die -d (dekomprimieren) Option.

ls calc-sheet.*
gzip -d calc-sheet.ods.gz
ls calc-sheet.*

Dekomprimieren einer Datei und Aufbewahren der Archivdatei

Diesmal löscht gzip die Archivdatei nicht.

VERBUNDEN: Warum gelöschte Dateien wiederhergestellt werden können und wie Sie dies verhindern können

Dekomprimieren und Überschreiben

Wenn Sie versuchen, eine Datei in einem Verzeichnis zu extrahieren, in dem sich die Originaldatei – oder eine andere Datei mit derselben – befindet, gzip fordert Sie auf, die Extraktion abzubrechen oder die vorhandene Datei zu überschreiben.

gzip -d text-file.txt.gz

Eingabeaufforderung von gzip überschreiben, wenn die Datei im Archiv bereits im Verzeichnis vorhanden ist

Wenn Sie im Voraus wissen, dass Sie die Datei im Verzeichnis gerne mit der Datei aus dem Archiv überschreiben möchten, verwenden Sie die Option -f (erzwingen).

gzip -df text-file.txt.gz

Erzwingen des Überschreibens einer vorhandenen Datei

Die Datei wird überschrieben und Sie kehren automatisch zur Befehlszeile zurück.

Verzeichnisbäume komprimieren

Das -r (rekursive) Optionsursachen gzip um die Dateien in einem ganzen Verzeichnisbaum zu komprimieren. Aber das Ergebnis ist möglicherweise nicht das, was Sie erwarten.

Hier ist der Verzeichnisbaum, den wir in diesem Beispiel verwenden werden. Die Verzeichnisse enthalten jeweils eine Textdatei.

tree level1

Verzeichnisbaumstruktur testen

Lassen Sie uns verwenden gzip auf den Verzeichnisbaum und sehen, was passiert.

gzip -r level1/
tree level1

Verzeichnisstruktur nach dem Ausführen von gzip darauf

Das Ergebnis ist gzip hat für jede Textdatei in der Verzeichnisstruktur eine Archivdatei erstellt. Es wurde kein Archiv des gesamten Verzeichnisbaums erstellt. In der Tat, gzip kann nur eine einzelne Datei in einem Archiv ablegen.

Wir können eine Archivdatei erstellen, die einen Verzeichnisbaum und alle seine Dateien enthält, aber wir müssen einen anderen Befehl ins Spiel bringen. Das tar Das Programm wird zum Erstellen von Archiven vieler Dateien verwendet, verfügt jedoch nicht über eigene Komprimierungsroutinen. Aber indem Sie die entsprechenden Optionen mit verwenden tarkönnen wir verursachen tar um die Archivdatei durchzuschieben gzip. Auf diese Weise erhalten wir eine komprimierte Archivdatei und ein Archiv mit mehreren Dateien oder mehreren Verzeichnissen.

tar -czvf level1.tar.gz level1

Das tar Optionen sind:

  • c: Erstellen Sie ein Archiv.
  • z: Schieben Sie die Dateien durch gzip.
  • v: Ausführlicher Modus. Drucken Sie im Terminalfenster was aus tar es liegt an.
  • f level1.tar.gz: Dateiname, der für die Archivdatei verwendet werden soll.

Die Ausgabe von tar arbeitet sich durch den Verzeichnisbaum

Dadurch werden die Verzeichnisbaumstruktur und alle Dateien innerhalb des Verzeichnisbaums archiviert.

VERBUNDEN: So komprimieren und extrahieren Sie Dateien mit dem tar-Befehl unter Linux

Abrufen von Informationen über Archive

Das -l Die Option (Liste) liefert einige Informationen über eine Archivdatei. Es zeigt Ihnen die komprimierten und unkomprimierten Größen der Datei im Archiv, das Komprimierungsverhältnis und den Namen der Datei.

gzip -l leve1.tar.gz
gzip -l text-file.txt.gz

Verwenden der Option -l list, um Komprimierungsstatistiken für ein Archiv anzuzeigen

Sie können die Integrität einer Archivdatei mit prüfen -t (Test-)Option.

gzip -t level1.tar.gz

Testen eines Archivs mit der Option -t

Wenn alles in Ordnung ist, kehren Sie stillschweigend zur Befehlszeile zurück. Keine Nachrichten sind gute Nachrichten.

Wenn das Archiv beschädigt oder kein Archiv ist, werden Sie darüber informiert.

gzip -t not-an-archive.gz

Verwenden der Option -t zum Testen einer Datei, die kein Archiv ist

Geschwindigkeit versus Komprimierung

Sie können wählen, ob Sie die Geschwindigkeit der Erstellung des Archivs oder den Grad der Komprimierung priorisieren möchten. Sie tun dies, indem Sie optional eine Nummer angeben, from -1 durch oben -9. Das -1 Option gibt die schnellste Geschwindigkeit auf Kosten der Komprimierung und -9 gibt die höchste Komprimierung auf Kosten der Geschwindigkeit.

Sofern Sie keine dieser Optionen angeben, verwendet gzip -6.

gzip -1 calc-sheet.ods
ls -lh calc-sheet.ods.gz
gzip -9 calc-sheet.ods
ls -lh calc-sheet.ods.gz
gzip -6 calc-sheet.ods
ls -lh calc-sheet.ods.gz

Verwenden von gzip mit unterschiedlichen Prioritäten für Geschwindigkeit und Komprimierung

Bei einer so kleinen Datei haben wir keinen signifikanten Unterschied in der Ausführungsgeschwindigkeit festgestellt, aber es gab einen kleinen Unterschied in der Komprimierung.

Interessanterweise gibt es keinen Unterschied zwischen der Verwendung von Level 9-Komprimierung und Level 6-Komprimierung. Sie können aus einer bestimmten Datei nur eine begrenzte Komprimierung herausholen, und in diesem Fall wurde diese Grenze mit Komprimierung der Stufe 6 erreicht. Das Hochdrehen auf 9 brachte keine weitere Reduzierung der Dateigröße. Bei größeren Dateien wäre der Unterschied zwischen Level 6 und Level 9 ausgeprägter.

Komprimiert, nicht geschützt

Verwechseln Sie Komprimierung nicht mit Verschlüsselung oder irgendeiner Form von Schutz. Das Komprimieren einer Datei bietet weder Sicherheit noch verbesserten Datenschutz. Jeder, der Zugriff auf Ihre Datei hat, kann sie verwenden gzip um es zu dekomprimieren.

VERBUNDEN: Listen Sie die 10 größten Dateien oder Verzeichnisse unter Linux auf



Hinterlasse eine Antwort

%d Bloggern gefällt das: