我有很多 gzip 档案;但是他们的邮政编码扩展名不是 gz:***.zip
当我尝试使用 解压它们时unzip
,出现not a zip archive
错误,而使用gunzip 时出现错误unknown suffix: zip
这里究竟发生了什么?
答案1
默认情况下,gzip
只会解压缩带有有限列表中的扩展名的文件,而不是检查文件magic
以确定它是否是 gzip 文件。来自以下评论gzip.c
::get_suffix()
/* ========================================================================
* Return a pointer to the 'z' suffix of a file name, or NULL. For all
* systems, ".gz", ".z", ".Z", ".taz", ".tgz", "-gz", "-z" and "_z" are
* accepted suffixes, in addition to the value of the --suffix option.
要使用实际上经过 gzip 压缩但未按照gzip
预期约定命名的输入文件,请按照以下明确提供后缀gzip
手册页:
-S .suf --后缀 .suf
...解压缩时,将 .suf 添加到后缀列表的开头以尝试从输入文件名派生输出文件名。
$ gunzip -S .zip foo.zip
或使用重定向来防止gzip
看到文件名:
$ gunzip < foo.zip > foo.txt