Tar

Aus Xinux Wiki
Version vom 10. Juli 2025, 05:46 Uhr von Thomas.will (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

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