Tar: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „== Syntax ==“ durch „== Aufruf ==“
 
(83 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{DISPLAYTITLE:tar}}
'''tar''' - speichert Dateien und Verzeichnisse in einem Archiv
 
'''topic''' kurze Beschreibung
== Beschreibung ==
== Beschreibung ==
== Installation ==
; ''tar'' speichert Dateien in einem Archiv im tar-Format
== Anwendungen ==
* Die Funktionsweise ähnelt vom Konzept her der von [[cpio]] und der von Programmen wie PKZIP unter Windows
=== Fehlerbehebung ===
* Es wird vom Debian/Paketverwaltungssystem genutzt
== Syntax ==
* Ist nützlich zur Sicherung von Systemdaten und zum Austausch von Dateisammlungen mit Anderen
=== Optionen ===
=== Parameter ===
=== Umgebungsvariablen ===
=== Exit-Status ===
== Konfiguration ==
=== Dateien ===
== Sicherheit ==
== Dokumentation ==
=== RFC ===
=== Man-Pages ===
=== Info-Pages ===
== Siehe auch ==
== Links ==
=== Projekt-Homepage ===
=== Weblinks ===
=== Einzelnachweise ===
<references />
== Testfragen ==
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 1''
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>


[[Kategorie:Entwurf]]
tar (Tape Archiver) sichert Daten auf Bandlaufwerken
[[Kategorie:Linux:Archive]]
* Ein reines tar-Archiv ist nicht komprimiert
[[Kategorie:Linux:Befehl]]


{{DEFAULTSORT:tar}}
In Verbindung mit gzip oder bzip2 trifft man oft auf Dateien mit der Endung .tar.gz, .tgz oder .tar.bz2
* Diese Archivdateien sind zusätzlich komprimiert worden
* tar selbst komprimiert nicht


== Installation ==
<syntaxhighlight lang="bash" highlight="1" line>
sudo apt install tar
</syntaxhighlight>


= TMP =
== Aufruf ==
==Bezeichnung==
<syntaxhighlight lang="bash" highlight="1" line>
tar (Tape Archiver) sichert Daten auf Bandlaufwerken. Ein reines tar-Archiv ist nicht komprimiert.
tar [Option(en)] Datei(en)
In Verbindung mit gzip oder bzip2 trifft man oft auf Dateien mit der Endung *.tar.gz, .tgz oder tar.bz2.
</syntaxhighlight>
Diese Archivdateien sind zusätzlich komprimiert worden, da tar selbst keine Komprimierung anbietet.


==Übersicht==
=== Optionen ===
tar [Option(en)] Datei(en)
 
== Anwendungren ==
=== 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, zwei Dateien hinzufügen 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
Leider werden bei einer Aktualisierung 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
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 im aktuellen Ordner extrahieren:
tar -xf archiv.tar
Alle Dateien aus einem mit gzip komprimierten Archiv im ursprünglichen Ordner extrahieren:
tar -xzf archiv.tar.gz -C /
Alle Dateien in ein bestimmtes Verzeichnis extrahieren (das Ziel-Verzeichnis muss bereits existieren):
tar -xzf archiv.tar.gz -C /PFAD/ZUM/ORDNER
Eine bestimmte Datei aus einem Archiv extrahieren:
tar -xzf archiv.tar.gz PFAD/DATEINAME
Dabei muss PFAD/DATEINAME genau so in der Archiv-Datei existieren. Ein angegebenes Unterverzeichnis PFAD wird im aktuellen Verzeichnis (bei relativem Pfad) automatisch erstellt.
 
==Optionen==
{| class="wikitable options"
{| class="wikitable options"
|-
|-
Zeile 151: Zeile 74:
|}
|}


=== Parameter ===
=== Umgebungsvariablen ===
=== Exit-Status ===


==== Backup mit tar ====
== Anwendung ==
tar (tape archiver) verwaltet Dateiarchive
=== Erstellen ===
; Archiv erstellen
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


tar [-Acdrtux] [-delete] [-b ''N''] [-BgGhiklmMoOpPPsSvwWz] [-C ''Verzeichnis''] [-f ''Datei''] [-F ''Datei''][-K ''Datei''] [-L ''Länge''] [-N ''Datum''] [-T ''Datei''] [-V ''Name''] [-X ''Datei''] [0-7] [{lmh}]
Ein Archiv mit dem Ordner daten inklusive aller Unterordner und Dateien anlegen:
tar -cf archiv.tar daten/


tar ist ursprünglich ein Tool zur Verwaltung von Bandarchiven. Das GNU-tar kann aber auch auf ,,rohen`` Disketten oder in normalen Dateien Archive im tar Format anlegen und verwalten. Normalerweise werden Archive mit tar nicht komprimiert. Das GNU-tar kann aber die Ein- und Ausgabe durch einen Kompressor leiten. Die neuen Versionen (ab 1.11.2) unterstützen sowohl compress als auch gzip.
Ein Archiv anlegen, zwei Dateien hinzufügen und nachträglich mit gzip komprimieren
tar -czf archiv.tar.gz datei_1.txt datei_2.txt


Wenn auf der Kommandozeile keine Datei und kein Gerät angegeben ist, versucht tar auf die Gerätedatei eines Magnetbandgerätes zuzugreifen. Je nach Konfiguration ist das meist /dev/tape oder /dev/rmt0. Sie können eine andere Voreinstellung wählen, indem Sie die Umgebungsvariable TAPE mit dem Pfadnamen der entsprechenden Gerätedatei belegen.
=== Archiv entpacken ===
; Alle Dateien aus einem Archiv im aktuellen Ordner extrahieren
$ tar -xf archiv.tar
; Alle Dateien aus einem mit gzip komprimierten Archiv im ursprünglichen Ordner extrahieren
# tar -xzf archiv.tar.gz -C /
; Alle Dateien in ein bestimmtes Verzeichnis extrahieren (das Ziel-Verzeichnis muss bereits existieren)
$ tar -xzf archiv.tar.gz -C /PFAD/ZUM/ORDNER
; Eine bestimmte Datei aus einem Archiv extrahieren
$ tar -xzf archiv.tar.gz PFAD/DATEINAME
Dabei muss PFAD/DATEINAME genau so in der Archiv-Datei existieren. Ein angegebenes Unterverzeichnis PFAD wird im aktuellen Verzeichnis (bei relativem Pfad) automatisch erstellt.


Optionen
=== Archivinhalt anzeigen ===
Inhalt eines Archivs anzeigen
tar -tvf archiv.tar


Die Optionen können aus Gründen der Kompatibilität mit anderen, älteren Versionen von tar auch in Abweichung von den [../../../ebooks/computer/betriebssysteme/linux/allgemein/unsortiert/linux_anwender_handbuch/linux_anwenderhandbuch_7-0/node23.html#goldenrules POSIX-Regeln] ohne das für Optionen übliche Minuszeichen angegeben werden. tar interpretiert den ersten Kommandoparameter immer als Optionsblock. Optionsargumente müssen dann im Anschluß an den Optionsblock in der Reihenfolge angegeben werden, in der die Optionen im Optionsblock erscheinen.
=== Aktualisieren ===
Fügt nur Dateien hinzu, wenn sie neueren Datums sind als ihr Gegenstück im Archiv:
tar -uf archiv.tar daten
Leider werden bei einer Aktualisierung keine Unterverzeichnisse berücksichtigt!


Einige wenige spezielle Optionen des GNU-tar sind nicht als einfache Buchstabenoptionen erreichbar. Diese Schalter und Regler können Sie nur in der für GNU-Kommandos spezifischen verbalen Form erreichen.
=== Datei hinzufügen ===
tar -rf archiv.tar datei_1.txt


{| class="wikitable sortable options"
=== Vergleich ===
|-
; Archiv mit Dateisystem
| | -A
tar -dvf archiv.tar
| | hängt ein komplettes Archiv an ein anderes Archiv an (nicht für Magnetbänder)
|-
| | -c
| | erzeugt ein neues Archiv
|-
| | -d
| | vergleicht das Archiv mit dem Dateisystem
|-
| | - -delete ''Datei''
| | löscht die ''Datei'' aus dem Archiv (nicht für Magnetbänder)
|-
| | -r
| | hängt Dateien an das Archiv an (nicht für Magnetbänder)
|-
| | -t
| | zeigt den Inhalt des Archivs
|-
| | -u
| | ersetzt Dateien, die neuer als eine bereits archivierte Version sind; ist eine Datei noch nicht archiviert, so wird sie eingefügt (nicht für Magnetbänder)
|-
| | -x
| | kopiert ''Datei'' oder alle Dateien aus dem Archiv
|-
| | Weitere Optionen
| |
|-
| | -atime-preserve
| | veranlaßt tar, die Zugriffszeit nach der Archivierung zurück zu setzen
|-
| | -b ''N''
| | setzt die Blockgröße auf ''N''x512 Bytes (Voreinstellung ist N=20)
|-
| | -B
| | unterdrückt den Abbruch von tar beim Lesen unvollständiger Blöcke; zum Lesen von 4.2BSD Pipes
|-
| | -C ''Verzeichnis''
| | wechselt während der Ausführung in das ''Verzeichnis'', um von dort weitere Dateien zu archivieren
|-
| | -f ''Datei''
| | benutzt ''Datei'' oder das damit verbundenen Gerät als Archiv
|-
| | -F ''Datei''
| | bei mehrteiligen Archiven (Option -M) wird das Shellscript ''Datei'' ausgeführt, wenn das Medium voll ist
|-
| | -G
| | erzeugt am Anfang des Bandarchives einen speziellen Eintrag für jedes archivierte Verzeichnis; spezielles GNU Format
|-
| | -g ''Datei''
| | erzeugt eine ''Datei'' mit einer Liste der archivierten Verzeichnisse als Zeitmarke der Archivierung; wenn die ''Datei'' bereits existiert, werden nur die Dateien archiviert, die nach dieser Zeitmarke erzeugt oder verändert wurden (spezielles GNU Format: 1. Zeile = Zeitmarke, 1. Feld = Nr. der Partition, 2. Feld = Inode des Verzeichnisses, 3. Feld = Name des Verzeichnisses)
|-
| | -h
| | archiviert die referenzierten Dateien anstelle der Links
|-
| | -i
| | ignoriert Blöcke mit Nullbytes im Archiv
|-
| | -k
| | existierende Dateien werden beim Auspacken von Archiven nicht überschrieben
|-
| | -K ''Datei''
| | beginnt eine Aktion bei ''Datei'' im Archiv
|-
| | -l
| | verhindert Archivierung von Dateien aus anderen Dateisystemen
|-
| | -L ''Länge''
| | wartet auf Medienwechsel nach ''Länge'' Bytes
|-
| | -m
| | das Datum der letzten Änderung wird nicht mitarchiviert
|-
| | -M
| | das Archiv ist auf mehrere Medien verteilt (Multi-Volume)
|-
| | -N ''Datum''
| | archiviert nur Dateien, die neuer sind als ''Datum''
|-
| | -o
| | benutzt das alte V7 tar-Format anstelle des ANSI Formates
|-
| | -O
| | schreibt die Dateien in die Standardausgabe
|-
| | -p
| | erhält die Zugriffsrechte der Dateien
|-
| | -P
| | archiviert mit absoluten Dateinamen
|-
| | -R
| | gibt zu jeder Meldung die Blocknummer des Archivblocks aus, von dem die Meldung verursacht wurde
|-
| | -s
| | zeigt an, daß die Liste von Dateien im Argument die gleiche Reihenfolge hat wie die Dateien im Archiv
|-
| | -T ''Datei''
| | holt die Namen der zu archivierenden Dateien aus ''Datei''
|-
| | -v
| | meldet jede Aktion
|-
| | -V ''Name''
| | erzeugt ein Archiv mit dem (internen) Label ''Name''
|-
| | -w
| | erwartet interaktiv Bestätigung jeder Aktion
|-
| | -W
| | verifiziert die geschriebenen Daten im Archiv
|-
| | -X ''Datei''
| | liest aus der ''Datei'' Namen oder reguläre Ausdrücke vonoder für Dateien, die nicht archiviert werden sollen
|-
| | -z
| | erzeugt ein mit gzip komprimiertes Archiv
|-
| | -Z
| | erzeugt ein mit compress komprimiertes Archiv
|-
| | -{0..7}{lmh}
| | spezifiziert das Gerät und die Dichte des Speichermediums (für Diskettenarchive ohne Bedeutung); 0 ist der erste Streamer, 1 der zweite und so weiter; die Dichte bestimmt den Bandtyp
|-
|}


=== Beispiel ===
Der Befehl muss in dem Verzeichnis ausgeführt werden, in dem die Dateien, die im Archiv liegen, gespeichert sind.
Der Tape Archiver ist das verbreitetste Werkzeug zur Datensicherung in Unix-Systemen. Ursprünglich rein zur Datenübertragung auf Bänder konzipiert, mit deren Hilfe der Datenaustausch zwischen verschiedenen Computern zu Zeiten fehlender Netzwerke ermöglicht werden sollte, hat sich gerade durch die Eignung von Bändern als Backupmedium das Programm quasi zum Standardwerkzeug für das Backup in kleineren Netzwerken etabliert, trotz des Fehlens einer brauchbaren Unterstützung von inkrementellen Backups.


Als Werkzeug zur Archivierung wurde tar im Kapitel Nutzerkommandos bereits vorgestellt.
=== Problembehebung ===
* Hier soll nun der Schwerpunkt auf den Einsatz des Kommandos zum Backup von Daten liegen.
== Konfiguration ==
=== Dateien ===


tar [ OPTION... ] [ DATEI... ]
<noinclude>
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
==== Dokumentation ====


tar arbeitet auf Dateiebene, kann also beliebige Dateien und Verzeichnisse in eine einzige Zieldatei verpacken. Zieldatei kann dabei alles bedeuten, was unter Unix als Datei betrachtet wird, also ein Gerät, eine normale Datei, eine Pipe...
===== Man-Page =====
===== Info-Pages =====
==== Links ====
===== Projekt =====
===== Weblinks =====


Die drei wichtigsten Optionen sind c zum Erzeugen eines Archivs, t zum Betrachten des Archivinhalts und x zum Entpacken desselben.
[[Kategorie:Linux/Datei/Archiv]]
[[Kategorie:Linux/Befehl]]


===== Volles Backup =====
{{DEFAULTSORT:tar}}
tar wird alle angegebenen Dateien (oder rekursiv den Inhalt von Verzeichnissen) in ein Archiv verpacken. Per Voreinstellung versucht das Kommando das Archiv auf einen Streamer zu schreiben (/dev/tape oder /dev/rmt0), ist kein solcher im System installiert, schreibt tar das Ergebnis auf die Standardausgabe. Um das Archiv in einer Datei zu sichern, ist die Option -f Datei zu wählen.
{{DISPLAYTITLE:tar}}
 
</noinclude>
Eine angenehme Eigenschaft ist der Umgang mit »Multivolumes« (Option -M) . Speichert man zum Beispiel das Archiv auf eine Diskette und reicht deren Speicherkapazität nicht aus, so fordert tar automatisch zum Wechsel des Mediums auf:
 
$ tar -Mcf /dev/fd0h1440 ~/Books/
tar: Removing leading `/' from absolute path names in the archive
Prepare volume #2 for /dev/fd0h1440 and hit return:
Prepare volume #3 for /dev/fd0h1440 and hit return:
Prepare volume #4 for /dev/fd0h1440 and hit return:
 
Im Beispiel schreibt tar die Daten auf eine (unformatierte) Diskette, weswegen dem Kommando genau mitgeteilt werden muss, wie groß die Speicherkapazität dieser ist (es ist das entsprechende Device anzugeben). Als erstes entfernt tar in allen Pfadnamen den führenden Slash (-P forciert die Verwendung absoluter Pfadnamen), so dass das Archiv bei einem späteren Entpacken an beliebiger Stelle im Dateisystem extrahiert werden kann - bei Beibehaltung der Verzeichnisstruktur. Nachfolgend wird der Benutzer zum Wechsel der Disketten aufgefordert. Alternativ zu »-M« kann mit -L Anzahl der Medienwechsel nach Archivierung von Anzahl Bytes erzwungen werden.
 
Es ist allerdings furchtbar uneffizient, das Archiv unkomprimiert abzulegen. tar kann zum Glück mit mehreren [../../../../index.php/Linuxfibel_-_Nutzerkommandos_-_Archivierung Packern ]zusammen arbeiten. Mit -z wird das Archiv mit [../../../../index.php/Linuxfibel_-_Nutzerkommandos_-_Archivierung#gzip_-_Dateien_komprimieren gzip ]komprimiert; -Z nutzt das (veraltete) Werkzeug [../../../../index.php/Linuxfibel_-_Nutzerkommandos_-_Archivierung#compress_-_Dateien_komprimieren compress ]und -j (alt: -I) den derzeit effektivsten Packalgorithmus des Kommandos [../../../../index.php/Linuxfibel_-_Nutzerkommandos_-_Archivierung#bzip2_-_Dateien_komprimieren bzip2. ]Wurde ein Archiv einmal gepackt, ist bei allen weiteren Operationen die Option für den jeweiligen Packer anzugeben! Das Packen funktioniert allerdings nicht bei Multilevel-Archiven. Ein Ausweg wäre das »vorab«-Komprimieren einer jeden Datei (zum Beispiel mittels eines Skripts) mit anschließender Archivierung.
 
===== Inkrementelles Backup =====
tar unterstützt nur eine rudimentäre Variante des inkrementellen Backups, in dem Daten zur Archivierung ausgewählt werden können, die »neuer« als ein anzugebendes Datum sind. Das Datum (-n Datum) ist hierbei im Format »Jahr-Monat-Tag« anzugeben. Um zum Beispiel alle Dateien zu erfassen, die in den letzten 7 Tagen (ab aktuellem Zeitpunkt) modifiziert wurden, kann folgender Kommandoaufruf verwendet werden:
 
$ tar -n $(date -d "now 7 days ago" +%Y-%b-%d) -czf /tmp/backup.tgz ~/Books/
 
Im Beispiel wurde bewusst die etwas verwirrende Kalkulation des Datums mit Hilfe von [../../../../index.php%3Ftitle=Linuxfibel_-_Sytem-Administration_-_Zeit_und_Steuerung&action=edit date ]gewählt, da dessen Einsatz das Schreiben eines Skripts zum automatischen Erzeugen von inkrementellen Backups vereinfacht.
 
===== Überprüfung des Archives =====
Um sich von einer ordnungsgemäßen Archivierung zu überzeugen, sollte das resultierende Archiv einem Test unterzogen werden. Da der Slash automatisch entfernt wurde, ist zuvor ins Wurzelverzeichnis zu wechseln oder das Arbeitsverzeichnis mit -C Pfad zu ändern und (in Bezug auf obiges Beispiel) Folgendes aufzurufen:
$ tar -C / -d -f /dev/fd0h1440
 
tar überzeugt sich nun, dass alle Dateien des Archivs auch im Dateisystem existieren. Sobald eine Unstimmigkeit festgestellt wird, wird das Kommando den Fehler ausgeben:
 
; Um einen Fehler zu provozieren, wurde eine Datei verschoben
$ tar -df /dev/fd0h1440
home/user/Books/linuxfibel.pdf: File does not exist
 
===== Recovery =====
Zu einem Backup gehört natürlich auch eine Möglichkeit, dieses wieder zurückzuspielen. Hier gelangt die Option -x (extract) zum Einsatz. Im Falle von relativen Pfadangaben im Archiv wird die Verzeichnisstruktur unterhalb des aktuellen Verzeichnisses erzeugt. Sie sollten also entweder zuvor ins Zielverzeichnis wechseln, oder dieses mit -C Pfad explizit angeben:
$ tar -C / -x -f /dev/fd0h1440
 
Handelt es sich um ein auf mehrere Medien verteiltes Archiv, muss die Option -M angegeben werden. tar fordert dann zum Medienwechsel auf.
 
Möchten Sie nur einzelne Dateien extrahieren, sind deren Namen mit vollständiger Pfadangabe auf der Kommandozeile anzugeben. Hier hilft eventuell die Option -t, um den korrekten Namen, so wie er im Archiv gespeichert ist, zu erfahren:
$ tar tf /dev/fd0h1440
home/user/Books/access.htm
home/user/Books/index.htm
home/user/Books/stuff.htm
home/user/Books/test.htm
...
$ tar -C / -x -f /dev/fd0h1440 home/user/Books/index.htm
 
===== Grafische Verpackung: kdat =====
{| class="wikitable sortable"
|-
|| Mit dem Programm kdat steht den KDE-Benutzern eine grafische Oberfläche zur Backupverwaltung mit tar zur Verfügung. Leider wird als Backupmedium derzeit nur das Tape unterstützt.
 
Nach dem Start von kdat sollte unter dem Menüpunkt »Bearbeiten->Einstellungen« der Typ des Tapes (Speicherkapazität, Device, Blockgröße) angepasst werden.
 
Anschließend muss das Tape gemountet werden, wobei kdat testet, ob das Band formatiert ist und ggf. zu einer Formatierung auffordert (Vorsicht: eventueller Datenverlust).
|| [[Image:Grafik4.png|right]]
|-
|}
 
Das vorgeschlagene »Label« kann übernommen werden, es ist ein eindeutiger Name für das Backup.
 
Im Hauptfenster ist der Verzeichnisbaum u.a. des Rechners dargestellt. Jedes zu sichernde Verzeichnis oder jede Datei ist durch Klick mit der rechten Maustaste zu selektieren. Ein Verzeichnis schließt dabei die enthaltenen Dateien/Verzeichnisse ein, wobei diese wiederum von einer Sicherung ausgeschlossen werden können. Ein markierter Eintrag ist hervorgehoben dargestellt. Über das Sichern-Symbol (oder »Datei->Sichern«) werden alle selektierten Dateien und Verzeichnisse auf das Tape geschrieben.
 
Um nicht bei jedem Aufruf die Dateien einzeln markieren zu müssen, können beliebig viele Sicherungsprofile angelegt werden. Jedes Profil enthält eine Liste der zu sichernden Daten.

Aktuelle Version vom 12. November 2024, 19:38 Uhr

tar - speichert Dateien und Verzeichnisse in einem Archiv

Beschreibung

tar speichert Dateien in einem Archiv im tar-Format
  • Die Funktionsweise ähnelt vom Konzept her der von cpio und der von Programmen wie PKZIP unter Windows
  • Es wird vom Debian/Paketverwaltungssystem genutzt
  • Ist nützlich zur Sicherung von Systemdaten und zum Austausch von Dateisammlungen mit Anderen

tar (Tape Archiver) sichert Daten auf Bandlaufwerken

  • Ein reines tar-Archiv ist nicht komprimiert

In Verbindung mit gzip oder bzip2 trifft man oft auf Dateien mit der Endung .tar.gz, .tgz oder .tar.bz2

  • Diese Archivdateien sind zusätzlich komprimiert worden
  • tar selbst komprimiert nicht

Installation

sudo apt install tar

Aufruf

tar [Option(en)] Datei(en)

Optionen

Option Beschreibung
-help Zeigt eine vollständige Übersicht über alle Optionen
-version Gibt die installierte Version von tar aus
-c Ein neues Archiv erzeugen
-d Dateien im Archiv und im Dateisystem miteinander vergleichen
-f Archiv in angegebene Datei schreiben / Daten aus angegebener Datei lesen. Diese Option muss die letzte sein, da die nachfolgende Zeichen als Datei interpretiert werden. Z.B. würde -cfv zu einer Fehlermeldung führen. Korrekt wäre -vcf
-j Archiv zusätzlich mit bzip2 (de)komprimieren
-J Archiv zusätzlich mit xz (de)komprimieren
-k Das Überschreiben existierender Dateien beim Extrahieren aus einem Archiv verhindern
-p Zugriffsrechte beim Extrahieren erhalten
-r Dateien an ein bestehendes Archiv anhängen
-t Inhalt eines Archivs anzeigen
-u Nur Dateien anhängen, die jünger sind als ihre Archiv-Version.
-v Ausfü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. würde -cfv zu einer Fehlermeldung führen. Korrekt wäre -vcf
-w Jede Aktion bestätigen
-x Dateien aus einem Archiv extrahieren
-z Archiv zusätzlich mit gzip (de)komprimieren
-Z Archiv zusätzlich mit compress (de)komprimieren
-A Inhalt eines bestehenden Archivs an ein anderes Archiv anhängen
-C Wechselt in das angegebene Verzeichnis. Das Archiv wird dann dort entpackt
-M Mehrteiliges Archiv anlegen/anzeigen/extrahieren
-L Medium wechseln, wenn ZAHL KBytes geschrieben sind
-W Archiv nach dem Schreiben prüfen

Parameter

Umgebungsvariablen

Exit-Status

Anwendung

Erstellen

Archiv erstellen

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, zwei Dateien hinzufügen und nachträglich mit gzip komprimieren

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

Archiv entpacken

Alle Dateien aus einem Archiv im aktuellen Ordner extrahieren
$ tar -xf archiv.tar
Alle Dateien aus einem mit gzip komprimierten Archiv im ursprünglichen Ordner extrahieren
# tar -xzf archiv.tar.gz -C /
Alle Dateien in ein bestimmtes Verzeichnis extrahieren (das Ziel-Verzeichnis muss bereits existieren)
$ tar -xzf archiv.tar.gz -C /PFAD/ZUM/ORDNER
Eine bestimmte Datei aus einem Archiv extrahieren
$ tar -xzf archiv.tar.gz PFAD/DATEINAME

Dabei muss PFAD/DATEINAME genau so in der Archiv-Datei existieren. Ein angegebenes Unterverzeichnis PFAD wird im aktuellen Verzeichnis (bei relativem Pfad) automatisch erstellt.

Archivinhalt anzeigen

Inhalt eines Archivs 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

Leider werden bei einer Aktualisierung keine Unterverzeichnisse berücksichtigt!

Datei hinzufügen

tar -rf archiv.tar datei_1.txt

Vergleich

Archiv mit Dateisystem
tar -dvf archiv.tar

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

Problembehebung

Konfiguration

Dateien

Anhang

Siehe auch

Dokumentation

Man-Page
Info-Pages

Links

Projekt
Weblinks