为了说明这一点:我已经从公司网站。使用 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
似乎发生的事情是他们已经双倍的压缩存档。
如果您运行file
gunzip 文件,您会发现它仍然是gzip 存档。如果您再次将其重命名为 .gz,则可以再次对其进行压缩。
最近似乎 gnu tar 会自动添加该-z
选项,前提是输入是一个文件。所以,这就是为什么-z
在你已经运行gunzip
一次之后,它可以在没有选项的情况下工作,tar会自动添加它。
此行为已记录在信息页面中:
“读取压缩档案甚至更简单:您不需要指定任何附加选项,因为 GNU `tar' 会自动识别其格式。[...] 格式识别算法基于“签名”,这是一种特殊的字节序列。文件的开头,特定于某些压缩格式。”
这是来自§8.1.1“创建和读取压缩档案”。