什么情况下gunzip & tar xf 可以工作但 tar xzf 失败?

什么情况下gunzip & tar xf 可以工作但 tar xzf 失败?

为了说明这一点:我已经从公司网站。使用 tar -xzf 失败:

$ tar -xzf LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar.gz 
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Exiting with failure status due to previous errors

但是,gunzip 后跟 tar -xf 效果很好:

$ gunzip LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar.gz
$ tar -xf LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar
# no error

谁能告诉我为什么会这样?-我希望标准tar命令始终有效。

答案1

似乎发生的事情是他们已经双倍的压缩存档。

如果您运行filegunzip 文件,您会发现它仍然是gzip 存档。如果您再次将其重命名为 .gz,则可以再次对其进行压缩。

最近似乎 gnu tar 会自动添加该-z选项,前提是输入是一个文件。所以,这就是为什么-z在你已经运行gunzip一次之后,它可以在没有选项的情况下工作,tar会自动添加它。

此行为已记录在信息页面中:

“读取压缩档案甚至更简单:您不需要指定任何附加选项,因为 GNU `tar' 会自动识别其格式。[...] 格式识别算法基于“签名”,这是一种特殊的字节序列。文件的开头,特定于某些压缩格式。”

这是来自§8.1.1“创建和读取压缩档案”。

相关内容