Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

tar - Archivieren von Dateien

&pagelevel(4)&pagelevel

(file archiver)


Das Kommando tar bearbeitet Archivdateien. Archivdateien können nur im POSIX-Dateisystem - nicht auf Magnetbändern und -kassetten - abgelegt werden.

Die Aktionen werden durch den Operanden hauptoption beschrieben.

Das Kommando tar wurde aus dem XPG4-Standard zurückgezogen. Es wird durch das Kommando pax abgelöst.

In Zukunft sollte nur noch das Kommando pax verwendet werden, da tar nur noch aus Kompatibilitätsgründen unterstützt wird.


Syntax


tar hauptoption[ zusatzoption...][ datei]
Hauptoptionen

hauptoption besteht aus einem Funktionszeichen, das mit oder ohne Bindestrich angegeben werden kann.

Unmittelbar anschließend können ein oder mehrere Zusatzoptionen (siehe "tar Archivieren von Dateien (file archiver)") angegeben werden.

hauptoption kann eines der folgenden Zeichen sein:

[-]c

(c- create)

Ein neues Archiv wird generiert. Die angegeben datei oder Dateien werden an den Beginn des Archivs geschrieben.

[-]r

(r - replace)

Die angegebene datei oder Dateien werden an das Ende des Archivs angefügt.

[-]u

(u - update)

Die angegebene datei oder Dateien werden an das Ende des Archivs angefügt, wenn sie noch nicht im Archiv vorhanden sind, die Zeit der letzten Änderung im Archiv früher liegt als die Zeit der letzten Änderung der zu archivierenden Datei.

[-]t

(t - table)

tar gibt ein Inhaltverzeichnis des Archivs aus.

Die Namen der angegebenen datei oder Dateien werden auf die Standard-Ausgabe geschrieben, falls die Datei im Archiv vorhanden ist.

Sind keine Dateien angegeben, werden die Namen aller im Archiv befindlichen Dateien auf die Standard-Ausgabe ausgegeben.

[-]x

(x - extract)
Die angegebene datei oder Dateien werden aus dem Archiv gelesen.

Steht die Datei mit relativen Pfadnamen im Archiv, so wird sie in das aktuelle Dateiverzeichnis kopiert.

Steht die Datei mit absoluten Pfadnamen im Archiv, wird sie in das entsprechende Dateiverzeichnis kopiert, falls dieses vorhanden ist.

Ist die angegebene Datei ein Dateiverzeichnis, so werden alle darin enthaltenen Unterverzeichnisse (rekursiv) kopiert.

Existiert die angegebene Datei noch nicht in dem Dateiverzeichnis, in das sie kopiert werden soll, so wird die Datei mit folgenden Attributen angelegt:

  • Benutzernummer des Eigentümers, Gruppennummer und Zeit der letzten Änderung werden von der archivierten Datei übernommen.

  • Die Zugriffsrechte werden so gesetzt, wie sie mit umask definiert sind.
    Das s-Bit wird nur berücksichtigt, wenn tar von einem Benutzer mit Systemverwalter-Rechten aufgerufen wird.

Existiert die Datei bereits, so werden die Zugriffsrechte nicht verändert.

Befinden sich mehrere Dateien mit gleichem Namen im Archiv, so überschreibt die letzte die vorangegangenen.

Zusatzoptionen

Die folgenden Zeichen können als zusatzoption unmittelbar an die hauptoption angefügt werden. Dabei ist folgendes zu beachten:

  • Geben Sie zuerst alle Zusatzoptionen ohne Leerzeichen ein.

  • Geben Sie dann die Argumente getrennt durch Leerzeichen an. Die Reihenfolge der Argumente wird bestimmt durch die Reihenfolge, in der die zugehörigen Zusatzoptionen eingegeben wurden.


+v

(v - verbose)

Der Name jeder bearbeiteten Datei wird auf die Standard-Fehlerausgabe geschrieben. Dem Namen wird ein Zeichen vorangestellt, der die Art der Bearbeitung anzeigt:

  • a für die Hauptoptionen c, r, und u, bzw.

  • x für die Hauptoptionen x.

Anschließend an den Dateinamen wird die Größe der Datei in Blöcken ausgegeben.

Wird die zusatzoption v bei der hauptoption [-]t verwendet, so werden die Zugriffsrechte sowie Eigentümer und Gruppe der Datei ausgegeben.

w

(w -what)

tar erwartet für jede Datei eine Bestätigung, bevor die der angegebenen hauptoption entsprechende Bearbeitung durchgeführt wird. Sie erhalten die folgende Ausgabe:

hauptoption dateiname:

tar erwartet nach dem Doppelpunkt Ihre Eingabe. Nur wenn Sie bestätigen (sprachabhängig mit j oder y), wird die Aktion durchgeführt.

Ist w nicht angegeben, so werden die Bearbeitungen ohne Rückfrage durchgeführt.

f

(f - file)

Der erste angegebene datei-Operand (bzw. der zweite, falls b bereits angegeben ist) wird als Name des zu bearbeitenden Archivs interpretiert.

Ist der angegebene Name '-' (Bindestrich), so wird das Archiv auf die Standard-Ausgabe geschrieben bzw. von der Standard-Eingabe gelesen. Dadurch kann tar auf beiden Enden einer Kommando-Pipe verwendet werden:

  • Falls f mit den Hauptoptionen -c, -r oder -u angegeben ist und der zugehörige datei-Operand '-' ist, so wird das Archiv auf die Standard-Ausgabe geschrieben.

  • Falls f im Zusammenhang mit der hauptoption -t oder -x angebenen ist und der zugehörige datei-Operand '-' ist, so wird das Archiv von der Standard-Eingabe gelesen.

Ist f nicht angegeben, so wird die Standard-Archivdatei verwendet, die mit der Shell-Variablen TAPE festgelegt ist.

h

tar verfolgt symbolische Verweise.

Ist h nicht angegeben, so bearbeitet tar nur den symbolischen Verweis, nicht aber die zugehörige Datei.

l

(l - link )

tar meldet, wenn ein Verweis auf andere Dateien nicht aufgelöst werden kann.

Ist l nicht angegeben, so wird keine Meldung ausgegeben.

m

(m - modification date/time)

tar setzt beim Kopieren der angegebenen Datei aus dem Archiv die Zeit der letzten Änderung für die Kopie auf das aktuelle Datum und Uhrzeit.

Ist m nicht angegeben, so wird das im Archiv gespeicherte Datum und Uhrzeit übernommen.

o

(o - owner)

Die aus dem Archiv kopierte Datei erhält als Eigentümer den Benutzer, der tar aufgerufen hat. Die Gruppe dieses Benutzers wird der Datei ebenfalls zugewiesen.

Ist o nicht angegeben, so werden die im Archiv für die Datei gespeicherten Eigentümer und Gruppe übernommen.

datei

Pfadname einer Datei oder eines Dateiverzeichnisses, die/das in ein Archiv geschrieben werden soll (hauptoption -c,-r oder -u), aus einem Archiv gelesen werden soll (hauptoption -x) oder aufgelistet werden soll (hauptoption -t).

Ist datei der Name eines Dateiverzeichnisses, so werden die entsprechenden Aktionen auf alle Dateien und Unterverzeichnisse (rekursiv) dieses Verzeichnisses angewandt.

Ist die zusatzoption f angebenen, so wird der erste datei-Operand als Archivname interpretiert.

Variable

TAPE

bestimmt den Namen des Archivs, der verwendet wird, falls die zusatzoption f nicht angegeben ist.

Internationale Umgebung

Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos tar:

LANG

Gibt einen Standardwert für die Variablen für die internationale Umgebung an, die nicht gesetzt oder Null sind. Ist LANG nicht gesetzt oder Null, wird der entsprechende Standardwert der internationalen Umgebung verwendet. Enthält eine der Internationalisierungsvariablen eine ungültige Einstellung, verhält sich das Kommando so, als sei keine der Variablen definiert worden.

LC_ALL

Ist diese Variable auf einen Wert gesetzt, d. h. ist sie nicht leer, überschreibt dieser Wert die Werte aller übrigen Internationalisierungsvariablen.

LC_CTYPE

Legt die internationale Umgebung für die Interpretation der Byte-Folgen eines Datentexts als Zeichen fest (z.B. Singlebytezeichen im Unterschied zu Mehrbytezeichen in Argumenten und Eingabedateien) sowie die Einteilung der Zeichen in Groß- und Kleinbuchstaben und deren Übereinstimmung.

LC_COLLATE

Beeinflusst die Sortierreihenfolge.

LC_MESSAGES

Legt die internationale Umgebung für Format und Inhalt der Diagnosemeldungen fest, die in die Standardfehlerausgabe geschrieben werden.

NLSPATH

Legt den Pfad der Meldungsdateien für LC_MESSAGES fest.

Beispiel 1

Archivdatei erzeugen:
Alle im aktuellen Dateiverzeichnis (.) und seinen Unterverzeichnissen enthaltenen Dateien sollen in die Archivdatei $HOME/archive/example1.TAR geschrieben werden.

$ tar cvf $HOME/archive/example1.TAR .

a ./.sh_history 8 Blocks

a ./.profile 1 Blocks

a ./test.proc 1 Blocks

a ./pos_examp/file1 1 Blocks

a ./pos_examp/file2 1 Blocks

a ./pos_examp/file3 8 Blocks

tar: ./example1.TAR : same as archive file

Beispiel 2

Inhaltsverzeichnis einer Archivdatei auf Standard-Ausgabe ausgeben:

$ tar tvf $HOME/archive/example1.TAR
Tar: blocksize = 20

USTAR format archive

rw------- 632/-993   3866 May 26 18:12 2008, ./.sh_history
rwxr-xr-x 632/-993     48 Mar 20 12:40 2008, ./.profile

rw-r--r-- 632/-993     29 Apr 23 13:31 2008, ./test.proc

rw-r--r-- 632/-993     29 May 26 18:05 2008, ./pos_examp/file1

rw-r--r-- 632/-993     52 May 26 18:07 2008, ./pos_examp/file2
rw------- 632/-993   3602 May 26 18:07 2008, ./pos_examp/file3

Beispiel 3

Dateien aus einer fremden Archivdatei in das aktuelle Dateiverzeichnis einlesen:
Die Dateien in der Archivdatei haben eine andere Benutzer- und Gruppennummer als der Benutzer, der das tar-Kommando aufruft. Der Benutzer möchte erreichen, dass bei den eingelesenen Dateien seine Benutzernummer als Eigentümer und seine Gruppennummer eingetragen wird:

(1) $ id
    uid=3010(VSC0) gid=3030(VSCG0)
(2) $ tar tvf /home/vsx/vsx1/km/example.TAR
    Tar: blocksize = 20
    USTAR format archive
    rw-r--r-- 3001/3002    883 May 28 13:29 2008, ./pos_examp/file1 
    rw-r--r-- 3001/3002   1766 May 28 13:30 2008, ./pos_examp/file2
    rw-r--r-- 3001/3002   2649 May 28 13:30 2008, ./pos_examp/file3
(3) $ tar xvfo    /home/vsx/vsx1/km/example.TAR
    Tar: blocksize = 20
    USTAR format archive
    tar: . : exists - no update
    x ./pos_examp/file1, 883 bytes, 2 tape blocks
    x ./pos_examp/file2, 1766 bytes, 4 tape blocks
    x ./pos_examp/file3, 2649 bytes, 6 tape blocks
(4) $ ls -lR
    total 8
    drwxr-xr-x   2 VSC0     VSCG0       2048 May 28 13:42
    pos_examp
    ./pos_examp:
    total 24
    -rw-r--r--   1 VSC0     VSCG0        883 May 28 13:29 file1 
    -rw-r--r--   1 VSC0     VSCG0       1766 May 28 13:30 file2
    -rw-r--r-- 1 VSC0 VSCG0 2649 May 28 13:30 file3

(1)

Der Benutzer VSC0 lässt sich seine Benutzer- und Gruppennummer anzeigen.

(2)

Das Inhaltsverzeichnis der fremden Archivdatei example.TAR wird ausgegeben. Dabei ist erkennbar, dass die Dateien und Verzeichnisse eine andere Benutzer- und Gruppennummer haben als die des Benutzers VSC0.

(3)

Mit der Option -o im tar-Kommando legt der Benutzer VSC0 fest, dass beim Entpacken der Archivdatei in das aktuelle Dateiverzeichnis seine Benutzer- und Gruppennummer übernommen werden.

(4)

Zur Überprüfung, ob die Benutzer- und Gruppennummer tatsächlich übernommen wurde, verwendet der Benutzer VSC0 das ls-Kommando.

Hinweis: Austausch von tar -Archiven zwischen Unix-Systemen und BS2000

In Unix-Systemen erstellte tar-Archive liegen im ASCII-Format vor. Da POSIX die Dateien jedoch standardmäßig im EBCDIC-Format behandelt und eine normale ASCII-EBCDIC-Konvertierung der Archivdateien nicht möglich ist, kann der Austausch von Archivdateien nur über ASCII-Dateisysteme erfolgen. Im Folgenden sind die möglichen Vorgehensweisen kurz erläutert:

Variante 1 (mit NFS)

Das tar-Archiv ist auf dem Unix-System gespeichert und in POSIX zugreifbar (montiert über NFS). Wenn die Shell-Variable IO_CONVERSION mit YES belegt ist, kann das tar-Archiv mit automatischer Konvertierung in das POSIX-Dateisystem entpackt werden.

Variante 2 (ohne NFS)

In POSIX ist ein ASCII-Dateisystem anzulegen (siehe Handbuch "POSIX Grundlagen für Anwender und Systemverwalter" [1], Beschreibung zum POSIX filesystem marker = n bei Install POSIX subsystem). Die Dateien in einem solchen Dateisystem werden bei Nutzung der Shell-Variablen IO_CONVERSION=YES als ASCII-Dateien behandelt. Das tar-Archiv muss binär vom Unix-System in ein solches POSIX-Dateisystem übertragen werden. Anschließend kann bei automatischer Konvertierung in ein POSIX-EBCDIC-Dateisystem entpackt werden.

Siehe auch

ar, cpio, pax