如何使用7-zip命令行工具充气并提取.tar.bz2


7

我有一个要通过7-zip命令行工具解压缩和解压缩的.tar.bz2文件。

所以基本上我正在寻找相当于

tar -xjf foo.tar.bz2

对于7-zip,只有用于提取的选项“ x”,因此

7z x foo.tar.bz2

给我膨胀的foo.tar文件,而不是解压缩tar内部的所有目录。7z对应的选项是什么?


当tar可以更优雅地处理它时,您能否添加要通过7-zip进行处理的原因。
bagavadhar

Answers:


3

使用7zip,您必须运行两次命令,一次解压缩,再一次提取。tar文件格式只是端到端卡住的所有内容的“一团糟”。然后,使用各种压缩算法(在您的示例bzip中)压缩整个tar文件。基本上,生成的文件有两层。当“提取” bzip层时,您将获得一个tar文件,然后在提取该tar文件时,将获得一堆单独的文件。

尽管7zip能够处理两层,但它不能一次处理多层:

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

实际上,标准的Unix工具的工作方式相同:

bunzip2 foo.tar.bz2
tar xf foo.tar

但是,unix tar命令具有一些便利功能,可以在处理tar部分之前/之后使用另一个程序调用辅助压缩和解压缩步骤。基本上,-j参数调用bzip2/ bunzip2,您只是看不到第二步。同样-z会调用gzip/ gunzip等。


3

虽然您无法在一个命令中执行此操作,但是可以利用Shell管道将两个7z命令链接到一个命令行中,如下所示:

7z e -so .\Downloads\enron_mongo.tar.bz2 | 7z e -si -ttar

2

使用标准输出和管道的7z和tar组合的较短版本怎么样?

# 7z x -so my-compressed-tarball.tar.bz2| tar xf -

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.