Der Befehl gzip komprimiert einzelne Dateien und reduziert deren Groesse. Er bewahrt dabei den urspruenglichen Dateimodus, Eigentuemer und Zeitstempel. Komprimierte Dateien erhalten die Endung .gz.

Syntax des gzip-Befehls

gzip [OPTIONEN] [DATEI]...
  • OPTIONEN - Steuern das Verhalten: Komprimierungsstufe, Ausgabe, Original behalten.
  • DATEI - Eine oder mehrere Dateien zum Komprimieren oder Dekomprimieren.

Gzip verarbeitet jede Datei einzeln und ersetzt sie standardmaessig durch die komprimierte Version. Fuer mehrere Dateien in einem Archiv musst du zuerst mit tar ein Archiv erstellen und dieses dann mit gzip komprimieren - das Ergebnis ist eine .tar.gz-Datei.

Gzip eignet sich fuer Textdateien, Logdateien und Tar-Archive. Bilder, Audiodateien und PDFs sind bereits komprimiert - hier bringt gzip kaum Einsparungen.

Dateien komprimieren

Uebergib den Dateinamen an gzip:

gzip logfile.txt

Das erzeugt logfile.txt.gz und loescht die Originaldatei.

Originaldatei behalten

Mit -k (keep) bleibt die Originaldatei erhalten:

gzip -k logfile.txt

Alternativ leitest du die Ausgabe in eine Datei um:

gzip -c logfile.txt > logfile.txt.gz

Die Option -c schreibt auf die Standardausgabe statt in eine Datei.

Komprimierungsfortschritt anzeigen

Die Option -v (verbose) zeigt die erreichte Komprimierung:

gzip -v logfile.txt
logfile.txt:  72.5% -- replaced with logfile.txt.gz

Mehrere Dateien komprimieren

Uebergib mehrere Dateien als Argumente:

gzip datei1.txt datei2.txt datei3.txt

Das erzeugt drei separate komprimierte Dateien: datei1.txt.gz, datei2.txt.gz und datei3.txt.gz.

Verzeichnis rekursiv komprimieren

Mit -r komprimiert gzip alle Dateien in einem Verzeichnis und seinen Unterverzeichnissen:

gzip -r /var/log/archiv

Jede Datei wird einzeln komprimiert - es entsteht kein gemeinsames Archiv. Fuer ein zusammenhaengendes Archiv verwendest du tar -czf.

Komprimierungsstufe waehlen

Gzip unterstuetzt Stufen von 1 bis 9:

  • -1 oder --fast - Schnellste Komprimierung, groessere Dateien
  • -6 - Standard
  • -9 oder --best - Beste Komprimierung, laengste Dauer
gzip -9 grosses-logfile.txt

Hoehere Stufen brauchen mehr Rechenzeit. Bei sehr grossen Dateien kann der Unterschied zwischen -6 und -9 deutlich sein.

Aus der Standardeingabe komprimieren

Du kannst die Ausgabe eines Befehls direkt komprimieren:

mysqldump datenbank | gzip -c > datenbank.sql.gz

Das ist praktisch fuer Datenbank-Backups oder Log-Rotation.

Dateien dekomprimieren

Mit -d (decompress) entpackst du eine .gz-Datei:

gzip -d logfile.txt.gz

Das erzeugt logfile.txt und loescht die komprimierte Datei.

gunzip verwenden

Der Befehl gunzip ist ein Alias fuer gzip -d:

gunzip logfile.txt.gz

Beide Befehle sind gleichwertig. gunzip ist einfacher zu merken.

Komprimierte Datei behalten

Mit -k bleibt die .gz-Datei erhalten:

gzip -dk logfile.txt.gz

Oder mit gunzip:

gunzip -k logfile.txt.gz

Mehrere Dateien dekomprimieren

Uebergib mehrere Dateien als Argumente:

gzip -d datei1.txt.gz datei2.txt.gz datei3.txt.gz

Verzeichnis rekursiv dekomprimieren

Mit -d und -r dekomprimiert gzip alle .gz-Dateien in einem Verzeichnis:

gzip -dr /var/log/archiv

Informationen ueber komprimierte Dateien

Die Option -l (list) zeigt Statistiken zu einer komprimierten Datei:

gzip -l logfile.txt.gz
compressed  uncompressed  ratio  uncompressed_name
      1523          5678  73.2%  logfile.txt

Fuer erweiterte Informationen einschliesslich CRC und Zeitstempel:

gzip -lv logfile.txt.gz
method  crc      date    time   compressed  uncompressed  ratio  uncompressed_name
defla   a9b9e776 Jan 15  14:30       1523          5678  73.2%  logfile.txt

Haeufige Optionen

OptionBeschreibung
-cAusgabe auf stdout, Originaldatei behalten
-dDekomprimieren
-kOriginaldatei behalten
-lStatistiken anzeigen
-rVerzeichnisse rekursiv verarbeiten
-vFortschritt anzeigen
-1 bis -9Komprimierungsstufe

Zusammenfassung

Der Befehl gzip komprimiert und dekomprimiert einzelne Dateien. Er ersetzt standardmaessig die Originaldatei - mit -k behältst du sie. Zum Dekomprimieren verwendest du gzip -d oder das Alias gunzip. Fuer Archive mit mehreren Dateien kombinierst du gzip mit tar.

Verwandte Artikel