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
-fsteht immer zuletzt, weil dahinter der Dateiname kommt:tar czf datei.tar.gz .... tarallein bündelt nur; Kompression kommt vonz(gzip),j(bzip2) oderJ(xz) — je stärker, desto langsamer.- Vor dem Entpacken immer
tar -tf archiv.tar.gzprüfen — manche Archive enthalten kein eigenes Oberverzeichnis. - Mit
gzip -t datei.gzlä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.