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

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

我有一个 .tar.bz2 文件,我想通过 7-zip 命令行工具解压缩并提取该文件。

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

tar -xjf foo.tar.bz2

对于 7-zip,只有选项“x”用于提取,所以这样做

7z x foo.tar.bz2

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

答案1

虽然您无法通过一个命令来完成此操作,但您可以使用壳牌管道将两个 7z 命令链接到一个命令行中,如下所示:

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

答案2

使用 7zip,您必须运行该命令两次,一次用于解压缩,另一次用于提取。 tar 文件格式只是首尾相连的所有内容的“一团”。然后使用各种压缩算法压缩整个 tar 文件,在您的示例中为 bzip。基本上生成的文件有两层。当您“提取”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

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

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

答案4

7z x -so foo.tar.bz2 | 7z x -si -ttar

相关内容