Aufblasen UND Extrahieren einer .tar.bz2 mit dem 7-Zip-Befehlszeilen-Tool

7

Ich habe eine .tar.bz2-Datei, die ich über das 7-zip-Befehlszeilentool dekomprimieren und extrahieren möchte.

Also suche ich im Grunde das Äquivalent von

tar -xjf foo.tar.bz2

Bei 7-Zip gibt es nur die Option "x" zum Extrahieren

7z x foo.tar.bz2

gibt mir die aufgeblasene Datei foo.tar, anstatt alle Verzeichnisse im Teer zu entpacken. Was ist die entsprechende Option für 7z?

Philipp
quelle
Können Sie den Grund hinzufügen, warum Sie dies über 7-Zip tun möchten, wenn Teer eleganter damit umgehen kann?
Bagavadhar

Antworten:

3

Bei 7zip müssen Sie den Befehl zweimal ausführen, einmal zum Dekomprimieren und erneut zum Extrahieren. Das tar-Dateiformat ist nur ein "Wad" von allem, was Ende an Ende steckt. Anschließend wird die gesamte TAR-Datei mithilfe verschiedener Komprimierungsalgorithmen komprimiert, in Ihrem Beispiel bzip. Grundsätzlich hat die resultierende Datei zwei Ebenen. Wenn Sie die bzip-Ebene "extrahieren", erhalten Sie eine TAR-Datei. Wenn Sie die TAR-Datei extrahieren, erhalten Sie eine Reihe einzelner Dateien.

7zip verarbeitet nicht mehrere Ebenen gleichzeitig, obwohl beide Ebenen verarbeitet werden können:

7z x foo.tar.bz2
7z x foo.tar

Tatsächlich funktionieren die Standard-Unix-Tools genauso:

bunzip2 foo.tar.bz2
tar xf foo.tar

Der Unix- tarBefehl verfügt jedoch über praktische Funktionen, die die sekundären Komprimierungs- und Dekomprimierungsschritte mit einem anderen Programm aufrufen, bevor / nachdem der Tar-Teil verarbeitet wird. Grundsätzlich -jruft das Argument bzip2/ auf bunzip2, Sie sehen den zweiten Schritt einfach nicht. Ebenso -zwird gzip/ gunzipusw. anrufen .

Caleb
quelle
3

Während Sie dies nicht in einem Befehl tun können, können Sie eine Shell-Pipeline verwenden, um zwei 7z-Befehle wie folgt in einer Befehlszeile zu verketten:

7z e -so .\Downloads\enron_mongo.tar.bz2 | 7z e -si -ttar
Justin Dearing
quelle
2

Wie wäre es mit einer kürzeren Version der Kombination aus 7z und Teer mit Standardausgang und Rohren?

# 7z x -so my-compressed-tarball.tar.bz2| tar xf -
Schrägstrich
quelle
1
7z x -so foo.tar.bz2 | 7z x -si -ttar
grey1mg
quelle