tar 在解压 .tar.bz 文件时显示“不是 bzip2 文件”错误

tar 在解压 .tar.bz 文件时显示“不是 bzip2 文件”错误

我有一个 data_or.tar.bz 文件

我尝试用

$ tar xjvf data_or.tar.bz

输出为

bzip2: (stdin) is not a bzip2 file.
tar: Child returned status 2
tar: Error is not recoverable: exiting now

只能bz2用命令提取文件吗tar

- 更新

$ file data_or.tar.bz 
data_or.tar.bz: POSIX tar archive (GNU)

答案1

您的 tarball 未压缩。扩展.bz已过时且具有误导性。

您可以使用以下命令解压缩:

tar xvf data_or.tar.bz

这里可能发生的情况是,它是使用开关(或)data_or.tar.bz创建的,该开关从提供的扩展中选择了压缩算法。--auto-compresstar -cavf

bzip2压缩文件的正确扩展名是.bz2,而压缩文件.bz的扩展名是。bzip

bzip使用算术编码(这是一种专利算法),因此bzip2于 1997 年作为无专利替代方案创建。因此,bzip2bzip不兼容。

tar无法处理bzip(解)压缩,因此--auto-compress切换会导致未压缩的 tarball。

答案2

tar -xvjf 文件.tar.bz2>> 因为使用了标志‘j’,tar 命令将调用 bzip2 来处理解压缩。

报告的错误解释:

bzip2:(stdin)不是 bzip2 文件。>> bzip2 向父进程 (tar) 报告,接收到的要处理的文件不是 bz2 格式

tar:子进程返回状态 2>> tar 通过退出执行报告从 bzip2 子进程收到的错误状态。在 man 文档中,错误状态表示“2 表示压缩文件损坏”。由于 bzip2 无法识别该格式,因此它将其报告为“损坏”

tar:错误不可恢复:立即退出>> 根据孩子发来的信息,压缩文件不被接受处理

修复该问题的步骤:

1-验证压缩的格式

file file.tar.bz2

POSIX tar 档案(GNU)- “或者其他格式”,然后使用下一步 2 进行更正

2-- tar -xvf file.tar.bz2“假设它是 posix tar 存档格式”

相关内容