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?
Antworten:
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:
Tatsächlich funktionieren die Standard-Unix-Tools genauso:
Der Unix-
tar
Befehl 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-j
ruft das Argumentbzip2
/ aufbunzip2
, Sie sehen den zweiten Schritt einfach nicht. Ebenso-z
wirdgzip
/gunzip
usw. anrufen .quelle
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:
quelle
Wie wäre es mit einer kürzeren Version der Kombination aus 7z und Teer mit Standardausgang und Rohren?
quelle
quelle