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

Mit*_*ran 3 linux extract tar

我有一个 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
Run Code Online (Sandbox Code Playgroud)

只能bz2tar命令提取文件吗?

- 更新

$ file data_or.tar.bz 
data_or.tar.bz: POSIX tar archive (GNU)
Run Code Online (Sandbox Code Playgroud)

Den*_*nis 7

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

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

tar xvf data_or.tar.bz
Run Code Online (Sandbox Code Playgroud)

此处可能发生的情况是data_or.tar.bz使用从提供的扩展名中选择压缩算法的--auto-compress开关(或tar -cavf)创建的。

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

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

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