ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.
Wikitar

tar

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/terminal.png Das Programm tar {en} steht für Tape Archiver. Es wurde ursprünglich geschrieben, um Daten auf Bandlaufwerken zu sichern. Auch heute ist es ein weiterhin sehr beliebtes Werkzeug zum Archivieren von Daten. In Verbindung mit gzip trifft man es oft im Format *.tar.gz oder .tgz als Archiv für Programm-Quellcode an. Ein tar-Archiv wird oftmals auch als Tarball bezeichnet.

Funktion

Das Programm tar schreibt alle Dateien sequenziell (= hintereinander) in ein Archiv. Neue Dateien werden immer an das Ende gehängt. Somit ist es möglich, dass in einem tar-Archiv mehrere Dateien mit gleichem Namen, aber in anderen Versionen, vorhanden sein können.

Dies kann allerdings dazu führen, dass eine Datei beim Extrahieren mehrfach mit einer jüngeren Version überschrieben wird. Abhilfe kann hier die Option -k bringen, siehe unten.

Installation

tar kann aus den Paketquellen installiert [1] werden durch das Paket:

  • tar

  • tar-doc (optional)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install tar tar-doc 

sudo aptitude install tar tar-doc 

Syntax

Der allgemeine Aufruf von tar im Terminal [2] lautet:

tar <OPTIONEN> Datei(en) 

Optionen

tar kennt verschiedene Optionen, von denen im Folgenden einige aufgelistet werden:

tar - Optionen
OptionBeschreibung
-cEin neues Archiv erzeugen.
-dDateien im Archiv und im Dateisystem miteinander vergleichen.
-fArchiv in angegebene Datei schreiben. / Daten aus angegebener Datei lesen.
-jArchiv zusätzlich mit bzip2 (de)komprimieren.
-JArchiv zusätzlich mit xz (de)komprimieren.
-kDas Überschreiben existierender Dateien beim Extrahieren aus einem Archiv verhindern.
-pZugriffsrechte beim Extrahieren erhalten.
-rDateien an ein bestehendes Archiv anhängen.
-tInhalt eines Archivs anzeigen.
-uNur Dateien anhängen, die jünger sind als ihre Archiv-Version.
-vAusführliche Ausgabe aktivieren. Hierbei ist zu beachten, dass man dies möglichst an den Anfang des Befehls anhängt, wenn mehrere Optionen kombiniert werden. z.B. -cfv würde zu einer Fehlermeldung führen. Korrekt wäre -vcf
-wJede Aktion bestätigen.
-xDateien aus einem Archiv extrahieren.
-zArchiv zusätzlich mit gzip (de)komprimieren.
-ZArchiv zusätzlich mit compress (de)komprimieren.
-AInhalt eines bestehenden Archivs in ein anderes Archiv kopieren.
-MMehrteiliges Archiv anlegen/anzeigen/extrahieren.
-LMedium wechseln, wenn ZAHL KBytes geschrieben sind.
-WArchiv nach dem Schreiben prüfen.
--helpZeigt eine vollständige Übersicht über alle Optionen.
--versionGibt die installierte Version von tar aus.

Eine detaillierte Beschreibung erhält man in den man-Pages oder info-Seiten zu tar.

Hinweis:

Manche Optionen, wie -r, funktionieren nur mit einem unkomprimiertem tar-Archiv. Archive, die zum Beispiel mit gzip komprimiert wurden, müssen ggf. zuvor entpackt werden.

Einige Beispiele

Anlegen

  • Ein Archiv mit dem Namen archiv.tar mit den Dateien datei_1.txt und allen Dateien vom Typ*.pdf anlegen:

    tar -cf archiv.tar datei_1.txt *.pdf 

  • Ein Archiv mit dem Ordner daten inklusive aller Unterordner und Dateien anlegen:

    tar -cf archiv.tar daten/ 

  • Ein Archiv anlegen und nachträglich mit gzip komprimieren:

    tar -czf archiv.tar.gz datei_1.txt datei_2.txt 

Anzeigen

  • Den Inhalt eines (komprimierten) Archivs ausführlich anzeigen:

    tar -tvf archiv.tar 

Aktualisieren

  • Fügt nur Dateien hinzu, wenn sie neueren Datums sind als ihr Gegenstück im Archiv:

    tar -uf archiv.tar daten 

Hinweis:

Leider werden bei dem Update keine Unterverzeichnisse berücksichtigt!

Ändern

  • Einem Archiv eine Datei hinzufügen:

    tar -rf archiv.tar datei_1.txt 

Vergleichen

  • Den Inhalt eines Archivs mit dem Dateisystem vergleichen:

    tar -dvf archiv.tar 

Hinweis:

Der Befehl sollte in dem Verzeichnis ausgeführt werden, in dem die Dateien, die im Archiv liegen, gespeichert sind.

Extrahieren

  • Alle Dateien aus einem Archiv extrahieren:

    tar -xf archiv.tar 

  • Alle Dateien aus einem mit gzip komprimierten Archiv extrahieren:

    tar -xzf archiv.tar.gz 

  • Alle Dateien in ein bestimmtes Verzeichnis extrahieren. (Das Ziel-Verzeichnis muss bereits existieren.):

    tar -xzf archiv.tar.gz -C /mein/pfad 

  • Eine bestimmte Datei aus einem Archiv extrahieren:

    tar -xzf archiv.tar.gz Pfad/Dateiname 

Archiv aufteilen und zusammenfügen

Um Archive unter GNU/Linux aufzuteilen, wird das Programm split genutzt. Zusammengefügt werden sie dann wieder mit cat.

Hinweis:

Eine grafische Lösung für den Dateimanager Nautilus gibt es hier: Nautilus/Skripte/Splitten und Vereinigen

Multi-Volume-Archive

Eine weitere Möglichkeit sehr große Archive auf externen Medien (z. B. Bandlaufwerken, Disketten) zu sichern, erhält man mit der Option -M. Ein Nachteil dieser Methode ist, dass die Daten nur mit tar direkt wiederhergestellt werden können und ein zusätzliches Packen mit den Optionen -z, -Z, -j nicht möglich ist.

Anlegen

Achtung!

Es ist darauf zu achten, das richtige Gerät anzusprechen, da sonst Daten verloren gehen können!

  • Multi-Volume-Archiv anlegen:

    sudo tar -cvMf /dev/Gerät daten/ 

Wenn ein Medium vollständig beschrieben ist, fragt tar so lange nach neuen Medien, bis alle Daten geschrieben sind. Dies sieht zum Beispiel so aus:

Medium #2 für /dev/Gerät und Eingabetaste drücken:

Wenn das Medium nicht in der Lage ist die Rückmeldung zu geben, wann es vollständig beschrieben ist, kann hier die Option -L helfen.

  • Multi-Volume-Archiv anlegen und nach 10000 Kilobyte das Medium wechseln:

    sudo tar -cvM -L 10000 -f /dev/Gerät daten/ 

Hinweis:

Es ist wichtig, die genaue Speicherkapazität des Mediums anzugeben, da sonst beim Extrahieren eventuell Teile von alten Archiven extrahiert werden.

Extrahieren

  • Multi-Volume-Archiv vollständig extrahieren:

    sudo tar -pxvMf /dev/Gerät 

  • Eine Datei aus einem Multi-Volume-Archiv extrahieren:

    sudo tar -pxvMf /dev/Gerät Pfad/Dateiname 

tar wird dann die folgenden Medien anfordern, bis die benötigte Datei gefunden ist.

Backup mit tar

Wie man ein Backup mittels Skript erzeugt, wird gesondert erklärt: Backupscript

ubuntuusers.local › Wikitar