# 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.

Source: https://www.jpkc.com/db/cheatsheets/archives/gzip/

<!-- PROSE:intro -->
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`.
<!-- PROSE:intro:end -->

## Komprimieren

`gzip <file>` — Komprimiert eine Datei (ersetzt das Original durch die .gz-Version).

```bash
gzip access.log
```

`gzip -k <file>` — Komprimiert und behält die Originaldatei.

```bash
gzip -k access.log
```

`gzip -<level> <file>` — Komprimiert mit einer bestimmten Stufe (1=schnellste, 9=beste Kompression).

```bash
gzip -9 access.log
```

`gzip -r <directory>` — Komprimiert rekursiv alle Dateien in einem Verzeichnis (jede Datei einzeln).

```bash
gzip -r /var/log/old/
```

`gzip -c <file> > <output.gz>` — Komprimiert nach stdout und erlaubt so einen eigenen Ausgabenamen.

```bash
gzip -c data.json > data.json.gz
```

## Dekomprimieren

`gzip -d <file.gz>` — Entpackt eine gzip-komprimierte Datei.

```bash
gzip -d access.log.gz
```

`gunzip <file.gz>` — Entpackt eine gzip-Datei (identisch zu gzip -d).

```bash
gunzip access.log.gz
```

`gzip -dk <file.gz>` — Entpackt und behält die komprimierte Datei.

```bash
gzip -dk access.log.gz
```

`gunzip -r <directory>` — Entpackt rekursiv alle .gz-Dateien in einem Verzeichnis.

```bash
gunzip -r /var/log/old/
```

`gzip -dc <file.gz> > <output>` — Entpackt nach stdout mit eigenem Ausgabenamen.

```bash
gzip -dc backup.sql.gz > backup.sql
```

## Informationen & Test

`gzip -l <file.gz>` — Zeigt Kompressions-Infos an: Größe komprimiert/unkomprimiert, Verhältnis, Name.

```bash
gzip -l access.log.gz
```

`gzip -t <file.gz>` — Prüft die Integrität einer komprimierten Datei.

```bash
gzip -t backup.sql.gz
```

`gzip -v <file>` — Ausführlicher Modus. Zeigt Dateiname und Kompressionsverhältnis.

```bash
gzip -v access.log
```

## Stapelverarbeitung

`gzip *.log` — Komprimiert alle .log-Dateien im aktuellen Verzeichnis.

```bash
gzip *.log
```

`gunzip *.gz` — Entpackt alle .gz-Dateien im aktuellen Verzeichnis.

```bash
gunzip *.gz
```

`find . -name '*.log' -exec gzip {} \;` — Findet und komprimiert rekursiv alle .log-Dateien.

```bash
find /var/log -name '*.log' -exec gzip {} \;
```

`find . -name '*.gz' -mtime +30 -delete` — Löscht komprimierte Dateien, die älter als 30 Tage sind.

```bash
find /var/log -name '*.gz' -mtime +30 -delete
```

## Verwandte Werkzeuge

`zcat <file.gz>` — Zeigt den Inhalt einer gzip-Datei an, ohne sie zu entpacken.

```bash
zcat access.log.gz
```

`zgrep <pattern> <file.gz>` — Sucht in einer gzip-Datei, ohne sie zu entpacken.

```bash
zgrep "404" access.log.gz
```

`zless <file.gz>` — Blättert mit less durch eine gzip-Datei.

```bash
zless access.log.gz
```

`zdiff <file1.gz> <file2.gz>` — Vergleicht zwei gzip-Dateien, ohne sie zu entpacken.

```bash
zdiff old.log.gz new.log.gz
```

`pigz <file>` — Parallele gzip-Kompression über mehrere CPU-Kerne.

```bash
pigz largefile.sql
```

`pigz -d <file.gz>` — Parallele gzip-Dekompression.

```bash
pigz -d largefile.sql.gz
```

<!-- PROSE:outro -->
## 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](https://www.gnu.org/software/gzip/) – Downloads, Handbuch und Release-Infos (englisch)
- [GNU gzip Manual](https://www.gnu.org/software/gzip/manual/) – vollständige Referenz aller Optionen (englisch)
- [gzip – Wikipedia](https://de.wikipedia.org/wiki/Gzip) – Hintergrund zu Format, Geschichte und LZ77
<!-- PROSE:outro:end -->

## Verwandte Kommandos

- [7z](https://www.jpkc.com/db/cheatsheets/archives/7z/) – Hochkomprimierender Packer mit eigenem .7z-Format
- [tar](https://www.jpkc.com/db/cheatsheets/archives/tar/) – bündelt viele Dateien zu einem Archiv, oft mit gzip kombiniert
- [zip](https://www.jpkc.com/db/cheatsheets/archives/zip/) – plattformübergreifendes Archivformat mit Kompression in einem Schritt

