Der Befehl tar fasst mehrere Dateien und Verzeichnisse in einem einzelnen Archiv zusammen. Er kann Archive erstellen, entpacken, auflisten und erweitern. Der Name steht fuer “Tape ARchive” - urspruenglich wurden damit Daten auf Magnetbaendern gesichert.
Syntax des tar-Befehls
tar [OPERATION] [OPTIONEN] [ARCHIV] [DATEIEN]...
OPERATION- Bestimmt, was tar tun soll: Archiv erstellen (-c), entpacken (-x) oder auflisten (-t).OPTIONEN- Zusaetzliche Einstellungen wie Komprimierung (-z,-j) oder ausfuehrliche Ausgabe (-v).ARCHIV- Der Name der Archivdatei, angegeben mit-f.DATEIEN- Die Dateien oder Verzeichnisse, die archiviert oder extrahiert werden sollen.
Tar kennt zwei Schreibweisen fuer Optionen: Die Kurzform mit einem Bindestrich (-cvf) und die Langform mit zwei Bindestrichen (--create --verbose --file). Bei der Kurzform kannst du den Bindestrich auch weglassen (cvf).
Ein Archiv erstellen
Mit der Operation -c (create) erstellst du ein neues Archiv. Die Option -f gibt den Dateinamen an:
tar -cf backup.tar dokument.txt tabelle.csv bild.png
Dieser Befehl packt die drei Dateien in ein Archiv namens backup.tar.
Um ein ganzes Verzeichnis zu archivieren:
tar -cf projekte.tar /home/user/projekte
Verzeichnisse werden standardmaessig rekursiv archiviert - alle Unterverzeichnisse und deren Inhalte werden eingeschlossen.
Mit der Option -v (verbose) zeigt tar die verarbeiteten Dateien an:
tar -cvf backup.tar /home/user/dokumente
Archive mit Komprimierung erstellen
Tar-Archive sind unkomprimiert. Fuer kleinere Dateien kombinierst du tar mit einem Komprimierungsalgorithmus.
Gzip-Komprimierung (.tar.gz)
Die Option -z komprimiert das Archiv mit gzip. Diese Methode bietet eine gute Balance zwischen Geschwindigkeit und Komprimierungsrate:
tar -czf backup.tar.gz /home/user/dokumente
Archive mit gzip-Komprimierung erhalten die Endung .tar.gz oder .tgz.
Bzip2-Komprimierung (.tar.bz2)
Mit -j verwendest du bzip2, das staerker komprimiert, aber laenger dauert:
tar -cjf backup.tar.bz2 /home/user/dokumente
Diese Archive tragen die Endung .tar.bz2 oder .tbz.
XZ-Komprimierung (.tar.xz)
Die Option -J aktiviert xz-Komprimierung, die oft die kleinsten Dateien erzeugt:
tar -cJf backup.tar.xz /home/user/dokumente
Archivinhalt auflisten
Bevor du ein Archiv entpackst, kannst du dessen Inhalt mit -t (list) anzeigen:
tar -tf backup.tar.gz
Die Ausgabe zeigt alle enthaltenen Dateien und Verzeichnisse:
home/user/dokumente/
home/user/dokumente/bericht.pdf
home/user/dokumente/notizen.txt
home/user/dokumente/bilder/
home/user/dokumente/bilder/foto.jpg
Fuer detaillierte Informationen wie Dateiberechtigungen, Eigentuemer und Groesse fuegst du -v hinzu:
tar -tvf backup.tar.gz
Ein Archiv entpacken
Die Operation -x (extract) entpackt ein Archiv:
tar -xf backup.tar.gz
Tar erkennt das Komprimierungsformat automatisch - du musst beim Entpacken keine Komprimierungsoption angeben.
Mit -v siehst du, welche Dateien entpackt werden:
tar -xvf backup.tar.gz
In ein bestimmtes Verzeichnis entpacken
Standardmaessig entpackt tar ins aktuelle Verzeichnis. Mit -C gibst du ein anderes Zielverzeichnis an:
tar -xf backup.tar.gz -C /tmp/restore
Das Zielverzeichnis muss bereits existieren.
Einzelne Dateien entpacken
Du kannst auch nur bestimmte Dateien aus einem Archiv holen. Gib dazu die gewuenschten Pfade an, wie sie mit -t angezeigt werden:
tar -xf backup.tar.gz home/user/dokumente/bericht.pdf
Mehrere Dateien trennst du mit Leerzeichen:
tar -xf backup.tar.gz home/user/dokumente/bericht.pdf home/user/dokumente/notizen.txt
Dateien mit Muster entpacken
Mit --wildcards extrahierst du Dateien anhand eines Musters:
tar -xf backup.tar.gz --wildcards '*.pdf'
Das Muster muss in Anfuehrungszeichen stehen, damit die Shell es nicht interpretiert.
Dateien zu einem Archiv hinzufuegen
Die Operation -r (append) fuegt Dateien zu einem bestehenden Archiv hinzu:
tar -rvf backup.tar neue-datei.txt
Hinweis: Das Hinzufuegen funktioniert nur bei unkomprimierten tar-Archiven. Bei komprimierten Archiven musst du das Archiv entpacken, die Dateien hinzufuegen und neu komprimieren.
Dateien aus einem Archiv entfernen
Mit --delete entfernst du Dateien aus einem unkomprimierten Archiv:
tar --delete -f backup.tar alte-datei.txt
Auch diese Operation ist auf unkomprimierte Archive beschraenkt.
Haeufige Optionskombinationen
Diese Kombinationen wirst du am haeufigsten verwenden:
| Befehl | Beschreibung |
|---|---|
tar -cvf archiv.tar verzeichnis/ | Archiv erstellen mit Ausgabe |
tar -czf archiv.tar.gz verzeichnis/ | Gzip-komprimiertes Archiv erstellen |
tar -cjf archiv.tar.bz2 verzeichnis/ | Bzip2-komprimiertes Archiv erstellen |
tar -tvf archiv.tar.gz | Archivinhalt detailliert auflisten |
tar -xf archiv.tar.gz | Archiv entpacken |
tar -xf archiv.tar.gz -C /ziel/ | In bestimmtes Verzeichnis entpacken |
Zusammenfassung
Der Befehl tar erstellt und verwaltet Archive auf der Kommandozeile. Mit -c erstellst du ein Archiv, mit -x entpackst du es und mit -t listest du den Inhalt auf. Fuer Komprimierung stehen -z (gzip), -j (bzip2) und -J (xz) zur Verfuegung. Beim Entpacken erkennt tar das Format automatisch.