Entpacken Sie die in .txz und .tar komprimierte Datei mit einem Befehl

13

Ich habe eine Datei in * .txz komprimiert. Nach dem Auspacken erhielt ich eine * .tar-Datei. Gibt es eine Möglichkeit, es zweimal mit einem Befehl zu entpacken? Ich meine Datei (* .tar) .txz mit einem Befehl entpacken?

Ich weiß, dass ich es so mache:

xz -d file.txz
tar xvf file.tar

Aber ich frage mich, ob es einen schöneren Weg gibt.

Paweł Jaworowski
quelle

Antworten:

18
xz -d < file.tar.xz | tar xvf -

Das ist das gleiche wie bei jedem komprimierten Archiv. Sie sollten niemals eine unkomprimierte Kopie der Originaldatei erstellen müssen.

Einige tarImplementierungen wie die neuesten Versionen von GNU tarverfügen über integrierte Optionen, die Sie xzselbst aufrufen können.

Mit GNU taroder bsdtar:

tar Jxvf file.tar.xz

Wenn Sie eine Version haben, die diese hat -J, werden xzDateien wahrscheinlich automatisch erkannt.

tar xvf file.tar.xz

wird genügen.

Wenn Ihre GNU oder BSD tarzu alt ist, um xzspeziell unterstützt zu werden, können Sie möglicherweise die folgende --use-compress-programOption verwenden:

tar --use-compress-program=xz -xvf file.tar.gz

Einer der Vorteile des tarAufrufs des Kompressor-Dienstprogramms besteht darin, dass es den Fehler in seinem Exit-Status melden kann.

Hinweis: Wenn das tar.xzArchiv mit erstellt wurde pixz, wurde pixzmöglicherweise ein tarIndex hinzugefügt , mit dem Dateien einzeln extrahiert werden können, ohne dass das gesamte Archiv dekomprimiert werden muss:

pixz -x path/to/file/in/archive < file.tar.xz | tar xvf -
Stéphane Chazelas
quelle
Ich muss dieses verwenden: tar --use-compress-program = xz -xvf file.tar.gz Danke!
Paweł Jaworowski
6

Dies sollte der richtige Weg sein tar Jxvf file.txz

UVV
quelle
Ja, für die modernen tar, können Sie verwenden , -Joder--xz .
Cornstalks
4

Das Auspacken ist wahrscheinlich nicht die richtige Terminologie. Sie können dekomprimieren mit xzund untar mit tar.

Die Handbuchseite für GNU tar( man tarGNU tar ist standardmäßig in Debian) gibt an, dass Sie Folgendes verwenden können:

-I, --use-compress-program PROG
      filter through PROG (must accept -d)

und xzunterstützt die -dOption, so dass Sie verwenden können:

tar --use-compress-program xz xvf file.txz 

Was auf der Manpage weit weniger klar ist, ist, dass -xzund -JAbkürzungen für --use-compress-program xzoder sind -I xz.

Und was in der Manpage überhaupt nicht angegeben ist, ist, dass Sie es einfach tun können

tar xvf file.txz 

in GNU tar und dass es die tar-Datei als mit komprimiert erkennt xz.

Anthon
quelle