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:
-1oder--fast- Schnellste Komprimierung, groessere Dateien-6- Standard-9oder--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
| Option | Beschreibung |
|---|---|
-c | Ausgabe auf stdout, Originaldatei behalten |
-d | Dekomprimieren |
-k | Originaldatei behalten |
-l | Statistiken anzeigen |
-r | Verzeichnisse rekursiv verarbeiten |
-v | Fortschritt anzeigen |
-1 bis -9 | Komprimierungsstufe |
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.