tar lzma 自动压缩产生错误“这看起来不像是 tar 存档”

tar lzma 自动压缩产生错误“这看起来不像是 tar 存档”

以下脚本

mkdir test && cd test
mkdir files
touch files/{1,2,3}
tar --create --file "test.lzma" files/{1,2,3} --auto-compress
mkdir extracted_files
tar --extract --file "test.lzma" --directory extracted_files --auto-compress

产生以下错误:

tar:这看起来不像是 tar 档案

但实际上 tar+compress 和 uncompress+untar 确实发生了(文件已就位)。为什么会发生这种情况?是不是 中的某种错误tar

在我的系统上:

xz --version
 xz (XZ Utils) 5.2.7
 liblzma 5.2.7
tar --version
 tar (GNU tar) 1.34
file test/test.lzma
 test/test.lzma: LZMA compressed data, streamed
ls test/extracted_files/
 files

您还可以在https://replit.com/languages/bash(与xz (XZ Utils) 5.2.2tar (GNU tar) 1.34)。但不是在https://www.onlinegdb.com/online_bash_shell(与xz (XZ Utils) 5.2.4tar (GNU tar) 1.30)。

答案1

已在上游修复。请查看https://savannah.gnu.org/bugs/index.php?63250

@Sergey Poznyakoff <灰色>:

“这看起来不像 tar 存档”不是错误,而是警告。特别是当 tar 无法通过签名确定文件格式并且文件大小小于 tar 块大小时,就会产生此警告。当签名识别失败时,tar 会尝试通过后缀确定文件格式。在这种情况下,它成功并提取了文件。

我已安装了以下修复程序来识别 xz 生成的 LZMA 文件:

http://git.savannah.gnu.org/cgit/tar.git/commit/?id=02f9af1b8df67e55ceb19ea1465d210a2fa1f02c

PS: 解压时不需要--auto-compress选项。

相关内容