tar ist das Standard-Archivierungstool unter Linux. In Kombination mit Komprimierungstools wie gzip, bzip2 oder xz werden effiziente Backups und Archive erstellt.
tar Grundlagen
Archiv erstellen
# Verzeichnis archivieren
tar -cvf archiv.tar /pfad/zum/verzeichnis
# Mehrere Dateien
tar -cvf archiv.tar datei1.txt datei2.txt
# Mit Komprimierung (gzip)
tar -czvf archiv.tar.gz /pfad/zum/verzeichnis
# Mit bzip2
tar -cjvf archiv.tar.bz2 /pfad/zum/verzeichnis
# Mit xz
tar -cJvf archiv.tar.xz /pfad/zum/verzeichnis
Optionen
Option
Bedeutung
-c
Create (erstellen)
-x
Extract (entpacken)
-t
List (auflisten)
-v
Verbose (ausführlich)
-f
File (Dateiname)
-z
gzip
-j
bzip2
-J
xz
-p
Berechtigungen erhalten
Archiv entpacken
# tar-Archiv
tar -xvf archiv.tar
# gzip-komprimiert
tar -xzvf archiv.tar.gz
# bzip2-komprimiert
tar -xjvf archiv.tar.bz2
# xz-komprimiert
tar -xJvf archiv.tar.xz
# In Verzeichnis entpacken
tar -xzvf archiv.tar.gz -C /ziel/verzeichnis/
Archiv-Inhalt anzeigen
tar -tvf archiv.tar
tar -tzvf archiv.tar.gz
Einzelne Dateien
# Einzelne Datei hinzufügen
tar -rvf archiv.tar neue_datei.txt
# Einzelne Datei extrahieren
tar -xvf archiv.tar pfad/zur/datei.txt
# Mit OpenSSL
tar -cz verzeichnis/ | openssl enc -aes-256-cbc -salt -out archiv.tar.gz.enc
# Entschlüsseln
openssl enc -d -aes-256-cbc -in archiv.tar.gz.enc | tar -xz
# Mit GPG
tar -cz verzeichnis/ | gpg -c > archiv.tar.gz.gpg
# Entschlüsseln
gpg -d archiv.tar.gz.gpg | tar -xz
Remote-Backup
# Direkt auf Remote-Server
tar -czvf - /data/ | ssh user@server "cat > /backup/data.tar.gz"
# Von Remote-Server holen
ssh user@server "tar -cz /data/" > backup.tar.gz
# Mit rsync-ähnlichem Verhalten
tar -cz /data/ | ssh user@server "cd /backup && tar -xz"
Split-Archive
# Große Datei aufteilen
tar -czvf - /data/ | split -b 1G - backup.tar.gz.
# Ergebnis: backup.tar.gz.aa, backup.tar.gz.ab, ...
# Zusammenfügen und entpacken
cat backup.tar.gz.* | tar -xzvf -
Archiv-Integrität
# Prüfsumme erstellen
tar -czvf archiv.tar.gz /data/
md5sum archiv.tar.gz > archiv.tar.gz.md5
# Prüfen
md5sum -c archiv.tar.gz.md5
# In tar integriert
tar -tzvf archiv.tar.gz > /dev/null && echo "OK"
Schnelle Tipps
Progress anzeigen
# Mit pv
tar -cf - /data/ | pv | gzip > archiv.tar.gz
# Mit tar --totals
tar --totals -czvf archiv.tar.gz /data/
Berechtigungen
# Berechtigungen erhalten
tar -cpzvf archiv.tar.gz /data/
# Als Root entpacken
sudo tar -xpzvf archiv.tar.gz -C /
Timestamps
# Timestamps erhalten
tar --atime-preserve -cvf archiv.tar /data/
Zusammenfassung
Befehl
Funktion
tar -cvf
Archiv erstellen
tar -xvf
Archiv entpacken
tar -tvf
Inhalt anzeigen
gzip
Komprimieren
gunzip
Dekomprimieren
Extension
Tool
tar-Option
.tar.gz
gzip
-z
.tar.bz2
bzip2
-j
.tar.xz
xz
-J
.tar.zst
zstd
--zstd
Aufgabe
Befehl
Backup
tar -czvf backup.tar.gz /data/
Restore
tar -xzvf backup.tar.gz -C /ziel/
Inhalt
tar -tzvf archiv.tar.gz
Exclude
tar --exclude='*.log' ...
Fazit
tar ist das Standard-Tool für Archivierung unter Linux. Die Kombination mit gzip bietet den besten Kompromiss aus Geschwindigkeit und Kompression. xz eignet sich für maximale Kompression bei Archive für lange Aufbewahrung. zstd ist die moderne Alternative mit exzellenter Geschwindigkeit. Für Backups sind Ausschlüsse und Berechtigungserhalt wichtig.