gzip — Dateien schnell komprimieren
Praxis-Guide zu gzip: Dateien mit LZ77 komprimieren, entpacken und prüfen — plus zcat, zgrep, zless und pigz für den Alltag.
gzip ist das klassische Kompressionswerkzeug der Unix-Welt und komprimiert einzelne Dateien mit dem schnellen LZ77-Verfahren. Du nutzt es täglich für Logs, Datenbank-Dumps oder als Backend von tar. Ein wichtiger Stolperstein: gzip ersetzt standardmäßig die Originaldatei durch die .gz-Version – ohne -k ist das Original danach weg. Dieser Guide zeigt dir Komprimieren, Entpacken und Prüfen sowie die Helfer zcat, zgrep und das parallele pigz.
Komprimieren
gzip <file> — Komprimiert eine Datei (ersetzt das Original durch die .gz-Version).
gzip access.loggzip -k <file> — Komprimiert und behält die Originaldatei.
gzip -k access.loggzip -<level> <file> — Komprimiert mit einer bestimmten Stufe (1=schnellste, 9=beste Kompression).
gzip -9 access.loggzip -r <directory> — Komprimiert rekursiv alle Dateien in einem Verzeichnis (jede Datei einzeln).
gzip -r /var/log/old/gzip -c <file> > <output.gz> — Komprimiert nach stdout und erlaubt so einen eigenen Ausgabenamen.
gzip -c data.json > data.json.gzDekomprimieren
gzip -d <file.gz> — Entpackt eine gzip-komprimierte Datei.
gzip -d access.log.gzgunzip <file.gz> — Entpackt eine gzip-Datei (identisch zu gzip -d).
gunzip access.log.gzgzip -dk <file.gz> — Entpackt und behält die komprimierte Datei.
gzip -dk access.log.gzgunzip -r <directory> — Entpackt rekursiv alle .gz-Dateien in einem Verzeichnis.
gunzip -r /var/log/old/gzip -dc <file.gz> > <output> — Entpackt nach stdout mit eigenem Ausgabenamen.
gzip -dc backup.sql.gz > backup.sqlInformationen & Test
gzip -l <file.gz> — Zeigt Kompressions-Infos an: Größe komprimiert/unkomprimiert, Verhältnis, Name.
gzip -l access.log.gzgzip -t <file.gz> — Prüft die Integrität einer komprimierten Datei.
gzip -t backup.sql.gzgzip -v <file> — Ausführlicher Modus. Zeigt Dateiname und Kompressionsverhältnis.
gzip -v access.logStapelverarbeitung
gzip *.log — Komprimiert alle .log-Dateien im aktuellen Verzeichnis.
gzip *.loggunzip *.gz — Entpackt alle .gz-Dateien im aktuellen Verzeichnis.
gunzip *.gzfind . -name '*.log' -exec gzip {} \; — Findet und komprimiert rekursiv alle .log-Dateien.
find /var/log -name '*.log' -exec gzip {} \;find . -name '*.gz' -mtime +30 -delete — Löscht komprimierte Dateien, die älter als 30 Tage sind.
find /var/log -name '*.gz' -mtime +30 -deleteVerwandte Werkzeuge
zcat <file.gz> — Zeigt den Inhalt einer gzip-Datei an, ohne sie zu entpacken.
zcat access.log.gzzgrep <pattern> <file.gz> — Sucht in einer gzip-Datei, ohne sie zu entpacken.
zgrep "404" access.log.gzzless <file.gz> — Blättert mit less durch eine gzip-Datei.
zless access.log.gzzdiff <file1.gz> <file2.gz> — Vergleicht zwei gzip-Dateien, ohne sie zu entpacken.
zdiff old.log.gz new.log.gzpigz <file> — Parallele gzip-Kompression über mehrere CPU-Kerne.
pigz largefile.sqlpigz -d <file.gz> — Parallele gzip-Dekompression.
pigz -d largefile.sql.gz Fazit
gzip ist schnell, überall verfügbar und ideal für einzelne Dateien wie Logs oder Dumps. Denk immer daran, dass es das Original ersetzt – nutze -k, wenn du es behalten willst, und gzip -t, bevor du dich auf ein Archiv verlässt. gzip kennt keinen Container für mehrere Dateien: Willst du ein ganzes Verzeichnis in eine Datei packen, kombinierst du es mit tar (tar czf), bei großen Datenmengen lohnt das parallele pigz.
Weiterführende Links
- GNU gzip – offizielle Projektseite – Downloads, Handbuch und Release-Infos (englisch)
- GNU gzip Manual – vollständige Referenz aller Optionen (englisch)
- gzip – Wikipedia – Hintergrund zu Format, Geschichte und LZ77