Archivieren von Dateien
Michael Gisbers & Kai Schell
2021-04-09
Auf den folgenden Slides sind die im Vortrag verwendeten Kommandozeilen-Aufrufe hinterlegt.
Ein Archiv kann auch ohne die Ausgabe in eine Datei erstellt werden. Es wird dann auf die Kommandozeile ausgegeben.
Aktuelle Versionen des tar
-Befehls verweigern dies.
Daher wird in diesem Beispiel die Ausgabe durch den Befehl
cat
geschickt.
user@linux $ tar c /etc/hostname | cat
user@linux $ tar cv /etc/hostname | cat
Der zusätzliche Parameter v
erzeugt in der Ausgabe
zusätzlich die Angabe der im Archiv hinterlegten Dateien.
Die folgenden Parameter erzeugen komprimierte Archive. Die richtige Namensendung für das Archiv muss der Anwender selber festlegen:
Beispiele:
user@linux $ tar cvzf /tmp/archiv.tar.gz /etc/hostname
user@linux $ tar cvjf /tmp/archiv.tar.bz2 /etc/hostname
user@linux $ tar cvJf /tmp/archiv.tar.xz /etc/hostname
Die Aufruf Syntax für die Hauptbefehle kann frei gewählt werden. Entweder nach BSD oder GNU - Parser Vorgaben:
user@linux $ tar cvf /tmp/archiv.tar /etc/hostname
user@linux $ tar -cvf /tmp/archiv.tar /etc/hostname
Wenn die Variante mit dem -
gewählt wird ist die
Position des f
nicht mehr frei wählbar. Es muss direkt
dahinter der Dateiname des Archivs folgen-
user@linux $ tar tf /tmp/archiv.tar
user@linux $ tar tvf /tmp/archiv.tar
Bei dem Aufruf mit der Option v
entspricht der Befehl
einem ls -l
auf ein Verzeichnis, sonst eher einem einfachen
ls
.
Das Archiv wird in das aktuelle Verzeichnis entpackt. Soll ein
anderes Verzeichnis genutzt werden, ist dieses mit -C
oder
--directory
explizit anzugeben. Das Zielverzeichnis muss
dafür existieren.
user@linux $ tar xvzf /tmp/archiv.tar.gz
user@linux $ tar xvzf /tmp/archiv.tar.gz -C /tmp/entpacken
Die zu entpackenden Dateien werden angegeben. Dabei müssen die
Dateinamen so angegeben werden, wie sie im Archiv vorliegen. Z. B. ohne
führenden /
-
user@linux $ tar xvzf /tmp/archiv.tar.gz etc/hostname
Das Pattern - Matching (Wildcard/Globbing) muss explizit mit dem
Parameter --wildcards
aktiviert werden.
user@linux $ tar xvzf /tmp/archiv.tar.gz --wildcards etc/host*
user@linux $ tar xvzf /tmp/backup_home_${USER}_$(date +"%s").tar.gz ${HOME}