Tar
Was ist das?
Mit tar ist es möglich, mehrere Dateien oder ganze Verzeichnisse in einem Archiv abzulegen bzw. diese wieder aus einem Archiv zu extrahieren.
tar [Kommando][Optionen] Datei(en)
Kommandos
- -c : Erzeugen eines neuen Archives
- -t : Anzeigen des Inhalts eines Archives
- -x : Extrahieren aus einem Archiv
Optionen
- -v : ausführliche Ausgabe
- -f dat1 : verwendet dat1 als Archiv
- -z : komprimiert im gzip Verfahren (Dateiformat .tar.gz)
- -j : komprimiert im bzip2 Verfahren (Dateiformat .bz2)
- -J : komprimiert im xz Verfahren (Dateiformat .xz)
- -C ver1/ : wechselt vor der Ausführung nach ver1/
- -I prog : verwendet externes Programm (z. B. unzstd) zur (De-)Kompression
Anmerkung: Für gewöhnlich können Optionen von Linuxbefehlen in einer beliebigen Reihenfolge angegeben werden. Jedoch erwartet die Option -f direkt den Dateinamen und sollte daher als letzte Option oder getrennt stehen.
Beispiele
Erstellen eines Tar-Gzip-Archivs mit den Dateien in /etc
- tar -czf /tmp/zero_etc_dateien.tar.gz
Anzeigen der Dateien im Archiv zero_etc_dateien.tar.gz
- tar -tf /tmp/zero_etc_dateien.tar.gz
oder:
- tar -t -f /tmp/zero_etc_dateien.tar.gz
Erstellen eines Bzip2-Archivs mit ausgewählten Dateien (telefonbuch, name)
- tar -cjf kontakte.bz2 telefonbuch name
Ausführliches Entpacken eines Bzip2-Archivs in das aktuelle Verzeichnis
- tar -xvjf kontakte.bz2
telefonbuch name
Entpacken einer Datei aus einem Bzip2-Archiv in das aktuelle Verzeichnis
- tar -xjvf kontakte.bz2 telefonbuch
telefonbuch
Entpacken eines Bzip2-Archivs in das Verzeichnis /tmp
- tar -xjf kontakte.bz2 -C /tmp/
Spezielles
tar schreibt auf STDOUT und liest über die PIPE von STDIN
- tar -C /bin -z -c -f - . | tar -C /tmp -x -v -z -f -
tar schreibt auf STDOUT über nc zu Rechner chris
- tar -C /bin -z -c -f - . | nc chris 666
tar liest von nc Port 666 über die PIPE von STDIN
- nc -l -p 666 | tar -C /tmp -x -v -z -f -
Vom Tararchive zum Binary
Am Beispiel von Squid
- Squid Sourcecode besorgen
- cp /share/squid-2.7.STABLE1.tar.gz .
- Paket entpacken
- tar -xvzf squid-2.7.STABLE1.tar.gz
.....
zstd
Erstellen eines zstd-komprimierten Archivs
- tar -cf - /usr/share | zstd > share.tar.zst
Entpacken eines zstd-Archivs (zweistufig)
- unzstd share.tar.zst
- tar -xvf share.tar
Direkt entpacken mit tar
- tar --use-compress-program=unzstd -xvf share.tar.zst
oder
- tar -I unzstd -xvf share.tar.zst