it-swarm.com.de

Wie dekomprimiere ich einen Tarball, der .xz verwendet?

Ich bin es gewohnt, Tarballs mit einem -xfz -Flag zu extrahieren, das gzip- und bzip2-Archive verarbeitet.

Kürzlich bin ich auf eine .tar.xz -Datei gestoßen, und ich möchte sie mit tar in einem Schritt dekomprimieren. Wie kann ich das tun?

763
Jorge Castro

Ubuntu enthält GNU tar, das das Format von selbst erkennt! Ein Befehl funktioniert mit jeder unterstützten Komprimierungsmethode pro im Handbuch .

tar xf archive.tar.xz
tar xf archive.tar.gz
tar xf archive.tar

usw. Wenn tar den Fehler Cannot exec ausgibt, müssen Sie möglicherweise zuerst Sudo apt install xz-utils eingeben.

1004
ramslök

Versuchen

tar -xJf file.pkg.tar.xz

Der -J ist das Flag, das sich speziell mit .xz-Dateien befasst.

323
jrg

Wenn die tar -Lösungen aus irgendeinem Grund nicht funktionieren (möglicherweise, weil Sie die integrierten OS X-Funktionen verwenden), versuchen Sie Folgendes:

unxz < file.tar.xz > file.tar

… Was äquivalent ist zu:

xz -dc < file.tar.xz > file.tar

Verwenden Sie dann tar, um die Datei zu entpacken.

80
Mathias Bynens

xz ist ein verlustfreier Datenkompressor. Sie müssen den Teerball aus xz extrahieren und dann den Teer extrahieren:

unxz my_archive.tar.xz      # results in my_archive.tar

Dann wissen Sie, einen Teer zu extrahieren

tar -xf my_archive.tar

Quelle: XZ Utils - Wikipedia .

30
Foxx

Ich hatte das gleiche Problem, der Befehl tar xf konnte es nicht extrahieren. Um dies zu beheben, müssen Sie das xz-utils -Paket installieren. Die Lösung war:

Sudo apt-get install xz-utils

dann:

tar xf myfile.tar.xz
15
Zsolt Sky
tar -xvf package.tar.xz

-x - Dateien extrahieren

-v - Verarbeitete Dateien ausführlich auflisten

-f - Verwendet die angegebene Archivdatei

14
nsane

Ich möchte nur hinzufügen, dass Sie, wenn Sie eine alte Version von GNU tar vor Version 1.22 haben, als die Optionen --xz und -J verfügbar wurden, tar.xz-Dateien komprimieren oder dekomprimieren können, indem Sie _--use-compress-program xz_. Zum Beispiel,

_tar --use-compress-program xz -cf example.tar.xz file1 file2 file3
_

oder

_tar --use-compress-program xz -xf example.tar.xz
_
5
ScottH

Wenn tar das Komprimierungsformat erkennt, benötigen Sie kein Flag:

tar xvf *.tar.xz

Wenn Sie die Eingabe manuell dekomprimieren müssen, z. B. weil Ihr Teer zu alt ist, um xz zu erkennen, oder wenn Sie einen speziellen Pfad benötigen:

xz -cd *.tar.xz | tar xvf -

Pipes sind schneller als das Erstellen einer unkomprimierten Zwischendatei und belegen auch weniger Speicherplatz!

4
Orion Lawlor

Ich mag dtrx

Sudo apt install dtrx
dtrx your-file.tar.xz
4
Boris

Wow, das ist wirklich gut. Wurde es mit 7Zip auf einem Mac gemacht? Versuche dies:

7z x -so file.tar.xz | tar xf -
3
user8290

Ubuntu wird mit Python (Python 2.7 und Python 3) geliefert, das die erforderlichen Module zum Extrahieren von Archiven enthält. Wenn also aus irgendeinem Grund der Befehl tar fehlt (sagen wir, Ihr Sysadmin hat ihn entfernt und Sie haben nicht das Privileg Sudo, um ihn zu installieren), können Sie Folgendes verwenden:

python3 -c 'import tarfile,sys; b = tarfile.open(sys.argv[1]);print(b.extractall())' ./archive.xz 

Als kurzes Skript ist dies lesbarer als:

#!/usr/bin/env python3
import tarfile,sys

with tarfile.open( sys.argv[1] ) as fd:
    fd.extractall()

Angenommen, ich habe eine .xz -Datei mit tar cJf thing.xz /etc/passwd erstellt. Das Archiv enthält das Verzeichnis etc mit der Datei passwd. Wenn Sie das obige Skript verwenden, wird das Verzeichnis etc in Ihrem aktuellen Arbeitsverzeichnis erstellt und enthält die Datei passwd. Natürlich kann dies jederzeit durch Angabe des Pfads, in den Sie extrahieren möchten, in der Funktion extractall() erweitert werden.

3

unar ist ein ziemlich einfaches Programm und einfach zu tippen, um fast jedes Format einschließlich 7z und RAR zu entarchivieren

es scheint in (GNU) Objective-C geschrieben zu sein und erfordert daher die Installation einiger gnustep-Bibliotheken ( gnustep-base-runtime und libgnustep-base1.25 )

wenn Sie --install-suggests verwenden oder apt konfiguriert haben, um vorgeschlagene Pakete zu installieren, schlägt unar viele GUI GNUStep-Programme vor und installiert sie, die nicht Ihren Wünschen entsprechen

_Sudo apt install --no-install-suggests unar 
unar linux-source.tar.xz
_

das Ausgabeverzeichnis _linux-source_ wird automatisch erstellt.

0
cat