Tar: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 12: Zeile 12:
 
===Optionen===
 
===Optionen===
 
* -v : ausführliche Ausgabe
 
* -v : ausführliche Ausgabe
* -f dat1 verwendet dat1 als Archiv  
+
* -f dat1 : verwendet dat1 als Archiv
* -z komprimiert im gzip Verfahren (Dateiformat .tar.gz)
+
* -z : komprimiert im gzip Verfahren (Dateiformat .tar.gz)
* -j komprimiert im bzip2 Verfahren (Dateiformat .bz2)
+
* -j : komprimiert im bzip2 Verfahren (Dateiformat .bz2)
* -C ver1/ wechselt vor der Ausführung nach ver1/
+
* -J : komprimiert im xz Verfahren (Dateiformat .xz)
* -J komprimiert im xzip Verfahren (Dateiformat .xz
+
* -C ver1/ : wechselt vor der Ausführung nach ver1/
 
+
* -I prog : verwendet externes Programm (z. B. unzstd) zur (De-)Kompression
'''Anmerkung:'''
 
  
 +
'''Anmerkung:'''
 
Für gewöhnlich können Optionen von Linuxbefehlen in einer beliebigen Reihenfolge angegeben werden. Jedoch erwartet
 
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.  
+
die Option -f direkt den Dateinamen und sollte daher als letzte Option oder getrennt stehen.
  
Beispiele
+
===Beispiele===
 +
Erstellen eines Tar-Gzip-Archivs mit den Dateien in /etc
 +
*tar -czf /tmp/zero_etc_dateien.tar.gz
  
Erstellen eines Tar-Gzip-Archivs mit den Dateien in /etc
 
root@zero:/etc# tar -czf /tmp/zero_etc_dateien.tar.gz *
 
 
Anzeigen der Dateien im Archiv zero_etc_dateien.tar.gz
 
Anzeigen der Dateien im Archiv zero_etc_dateien.tar.gz
root@zero:~# tar -tf /tmp/zero_etc_dateien.tar.gz
+
*tar -tf /tmp/zero_etc_dateien.tar.gz
 
oder:
 
oder:
root@zero:~# tar -t -f /tmp/zero_etc_dateien.tar.gz
+
*tar -t -f /tmp/zero_etc_dateien.tar.gz
 +
 
 
Erstellen eines Bzip2-Archivs mit ausgewählten Dateien (telefonbuch, name)
 
Erstellen eines Bzip2-Archivs mit ausgewählten Dateien (telefonbuch, name)
root@zero:~# tar -cjf kontakte.bz2 telefonbuch name
+
*tar -cjf kontakte.bz2 telefonbuch name
 +
 
 
Ausführliches Entpacken eines Bzip2-Archivs in das aktuelle Verzeichnis
 
Ausführliches Entpacken eines Bzip2-Archivs in das aktuelle Verzeichnis
root@zero:~# tar -xvjf kontakte.bz2
+
*tar -xvjf kontakte.bz2
 
  telefonbuch
 
  telefonbuch
 
  name
 
  name
 +
 
Entpacken einer Datei aus einem Bzip2-Archiv in das aktuelle Verzeichnis
 
Entpacken einer Datei aus einem Bzip2-Archiv in das aktuelle Verzeichnis
root@zero:~# tar -xjvf kontakte.bz2 telefonbuch
+
*tar -xjvf kontakte.bz2 telefonbuch
 
  telefonbuch
 
  telefonbuch
 +
 
Entpacken eines Bzip2-Archivs in das Verzeichnis /tmp
 
Entpacken eines Bzip2-Archivs in das Verzeichnis /tmp
root@zero:~# tar -xjf kontakte.bz2 -C /tmp/
+
*tar -xjf kontakte.bz2 -C /tmp/
==Spezielles==
+
 
 +
===Spezielles===
 
tar schreibt auf STDOUT und liest über die PIPE von STDIN
 
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 -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 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
 
tar liest von nc Port 666 über die PIPE von STDIN
*nc -l -p 666 | tar -C /tmp -x -v -z -f -
+
*nc -l -p 666 | tar -C /tmp -x -v -z -f -
  
==Vom Tararchive zum Binary==
+
===Vom Tararchive zum Binary===
 
Am Beispiel von Squid
 
Am Beispiel von Squid
 
*Squid Sourcecode besorgen
 
*Squid Sourcecode besorgen
root@zero:/usr/src# cp /share/squid-2.7.STABLE1.tar.gz .
+
*cp /share/squid-2.7.STABLE1.tar.gz .
 
*Paket entpacken
 
*Paket entpacken
root@zero:/usr/src# tar -xvzf squid-2.7.STABLE1.tar.gz .
+
*tar -xvzf squid-2.7.STABLE1.tar.gz
 
  .....
 
  .....
*In das Squid Verzeichnis wechseln
+
 
root@lydia:/usr/src/squid-2.7.STABLE1#
+
===zstd===
*Configure starten zu testen ob alles benötigte installiert ist und um eine Makefile zu erstellen
+
Erstellen eines zstd-komprimierten Archivs
root@lydia:/usr/src/squid-2.7.STABLE1# ./configure
+
*tar -cf - /usr/share | zstd > share.tar.zst
*Kompilieren des Paketes
+
 
root@lydia:/usr/src/squid-2.7.STABLE1# make
+
Entpacken eines zstd-Archivs (zweistufig)
*Installieren des Paketes
+
*unzstd share.tar.zst
root@lydia:/usr/src/squid-2.7.STABLE1# make install
+
*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

Aktuelle Version vom 10. Juli 2025, 05:46 Uhr

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