Frage Wie dekomprimiere ich einen Tarball, der .xz verwendet?


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

Kürzlich bin ich auf eine .tar.xz Datei und ich möchte es in einem Schritt mit dekomprimieren tar, wie kann ich das machen?


658
2018-01-02 23:41


Ursprung


Beachten Sie, dass Sie möglicherweise installieren müssen xz-utils wenn nicht schon vorhanden - Tobias Kienzler
Hier ist mein kleines Skript, das Teerfahnen für dich errät: gist.github.com/shime/5908634 - shime
tar --help Listen tar Flaggen. -xzf gilt für gzip. -xjf zu bz2. -xJf zu xz. - noobninja


Antworten:


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

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

usw. Wenn Teer a gibt Cannot exec Fehler, müssen Sie möglicherweise sudo apt install xz-utils zuerst.


860
2018-02-26 17:41



Es ist eine Eigenschaft von GNU-Teer. Ich weiß nichts über konkurrierende Implementierungen, aber GNU tar sollte für ubuntu am relevantesten sein. gnu.org/software/tar/manual/tar.html#SEC131 - ramslök
wenn du hineinläufst tar: xz: Cannot exec: No such file or directory, Installieren xz-utils: sudo apt-get install xz-utils - Collin Anderson
Dies ist keine Antwort, es ist ein "Sie interessieren sich nicht für die Antwort, auch wenn Sie" Antwort "gefragt haben. Spare einen Gedanken für Leute, die nicht auf dem neuesten Stand sind - Sean Houlihane
Welche Version von tar benötigt nicht mehr die spezifische Flagge? - Mark Tomlin
@SeanHoulihane, es ist keine Antwort, weil das OP eine Minderjährige fragte XY-Problem. Ramslök gab das OP besser als verlangt, und das beinhaltete ein effektives "Sie interessieren sich nicht für die Antwort, obwohl Sie gefragt haben", was angemessen war, weil es wahr war. - JonathanHayward


Versuchen

tar -xJf file.pkg.tar.xz

Das -J ist das Flag, das sich speziell mit .xz-Dateien beschäftigt.


287
2018-01-02 23:42



Ich frage mich, wie viele Flaggen wir 2020 haben werden. Wie ... 45 verschiedene Kompressionen? Das Wissen um Teer-Switches ist in Linux-fu bereits ein Black-Belt. : / - Shiki
@Shiki: Das ist wahrscheinlich der Grund, warum Sie das Flag für den Kompressionsformat nicht mehr angeben müssen. (Siehe Ramslöks Antwort.) - Nate C-K
xkcd.com/1168 - Wordzilla
Dies sollte vollständig die akzeptierte Antwort sein, da es die Frage für jede Version von Teer-Unterstützung beantwortet .xz - pospi
Im Jahr 2030 werden die Flaggen zu Turing komplett ... 2040 werden sie empfindungsfähig - user1359


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

unxz < file.tar.xz > file.tar

... was entspricht:

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

Dann benutze tar um die Datei zu entpacken.


68
2018-01-19 20:05



Das sollte mit einem Rohr konstruierbar sein. - gerrit
Ich habe das Gefühl, du könntest es einfach tun unxz < file.tar.xz | tar x o.ä. - thirtythreeforty
das funktionierte für mich, wo tar xf nicht. ubuntu 12.04 - philshem
Zumindest auf meiner Ubuntu-Maschine, unxz ist nicht gleichbedeutend mit xz -dc, aber zu xz -d. Also zu extrahieren file.tar.xz zu file.tarDu würdest einfach schreiben unxz file.tar.xz. Wenn du ein Äquivalent dazu haben willst xz -dcdekomprimieren zu stdout, verwenden xzcat. Beispielsweise xzcat file.tar.xz | tar x. - nwellnhof


XZ ist ein verlustfreier Datenkompressor. Du musst den Teerball von XZ extrahieren und dann den Teer extrahieren:

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

Dann wissen Sie, um einen Teer zu extrahieren

tar -xf my_archive.tar

Quelle: XZ Utils - Wikipedia.


24
2018-05-23 18:44



Beste Antwort. xz benötigt keine Standardumleitung. Noch besser: unxz -k - Mark Jeronimus


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

sudo apt-get install xz-utils

dann:

tar xf myfile.tar.xz

12
2018-02-14 18:44





Wie wäre es mit

tar -xvf package.tar.xz

-x - Dateien extrahieren

-v - verarbeitete Dateien ausführlich auflisten

-f - Verwenden Sie die angegebene Archivdatei


8
2018-03-05 17:16





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

tar xvf *.tar.xz

Wenn Sie die Eingabe manuell dekomprimieren müssen, zum Beispiel, weil Ihr tar zu alt ist, um xz zu erkennen, oder Sie einen speziellen Pfad benötigen:

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

Pipes sind schneller als eine unkomprimierte Zwischendatei und verbrauchen weniger Speicherplatz!


3
2018-02-04 06:13





Ich möchte nur hinzufügen, dass wenn Sie eine alte Version von haben GNU-Teer Vor Version 1.22, als die Optionen --xz und -J verfügbar wurden, konnten Sie tar.xz-Dateien komprimieren oder dekomprimieren --use-compress-program xz. Beispielsweise,

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

oder

tar --use-compress-program xz -xf example.tar.xz

3
2017-09-04 01:21