tar bündelt Dateien und Verzeichnisse zu einem Archiv, gzip komprimiert einzelne Dateien. Zusammen ergeben sie das weltweit verbreitetste Backup- und Verteilformat unter Linux: .tar.gz.

tar: Archiv erstellen und entpacken

tar -cf archiv.tar verzeichnis     # Archiv erstellen (c=create, f=Datei)
tar -xf archiv.tar                 # Archiv entpacken (x=extract)
tar -tf archiv.tar                 # Inhalt anzeigen (t=list)
tar -czf archiv.tar.gz verzeichnis # komprimiert mit gzip (z)
tar -xzf archiv.tar.gz             # komprimiertes Archiv entpacken

gzip: Dateien komprimieren

gzip datei.txt                     # erzeugt datei.txt.gz
gunzip datei.txt.gz                # wieder entpacken
gzip -k datei.txt                  # Original behalten (-k wie keep)
zcat log.txt.gz                    # Inhalt anzeigen ohne zu entpacken
zgrep "Fehler" log.txt.gz          # direkt in der gz-Datei suchen

Typische Praxis

tar -czf backup-$(date +%F).tar.gz /home/user/          # Backup mit Datum
tar -xzf paket.tar.gz -C /opt/                          # in ein Zielverzeichnis
tar -czf web.tar.gz --exclude=cache --exclude=tmp /var/www   # Ordner ausschließen
tar -cjf archiv.tar.bz2 verzeichnis                     # stärkere Kompression (bzip2)
tar -cJf archiv.tar.xz verzeichnis                      # noch stärker (xz)

Praxis-Tipps

  • Die Option -f steht immer zuletzt, weil dahinter der Dateiname kommt: tar czf datei.tar.gz ....
  • tar allein bündelt nur; Kompression kommt von z (gzip), j (bzip2) oder J (xz) — je stärker, desto langsamer.
  • Vor dem Entpacken immer tar -tf archiv.tar.gz prüfen — manche Archive enthalten kein eigenes Oberverzeichnis.
  • Mit gzip -t datei.gz lässt sich eine Datei auf Integrität testen.
  • Backups mit Datum im Dateinamen ($(date +%F)) sind der einfachste Weg, mehrere Versionen zu behalten.

Verwandte Grundlagen: Bash-Befehle, find-Befehle und xargs-Befehle.