当执行“uncompress gcc.tar.Z &”时,是否应该省略大写z?

当执行“uncompress gcc.tar.Z &”时,是否应该省略大写z?

在第三版中“学习 Bash shell”由 Newham 和 Rosenblatt 撰写,第 19 页提到解压缩名为gcc.tar.Z.

键入uncompress gcc.tar &(您可以省略 Z)。

为什么作者说“你可以省略 Z”?为什么不直接保留呢?...


man uncompressUbuntu 16.04 中,我找到了 Gunzip(“Gzip”)手册,其中写道:

如果压缩文件名对于其文件系统来说太长,gzip 会将其截断。 Gzip 尝试仅截断文件名中超过 3 个字符的部分。

gunzip 在其命令行上获取文件列表,并用未压缩的文件替换名称以 .gz、-gz、.z、-z 或 _z(忽略大小写)结尾且以正确的幻数开头的每个文件。原始扩展名。 gunzip 还识别特殊扩展名 .tgz 和 .taz 分别作为 .tar.gz 和 .tar.Z 的简写。压缩时,gzip 在必要时使用 .tgz 扩展名,而不是截断具有 .tar 扩展名的文件。

gunzip 有时能够检测到坏的 .Z

我承认我并不完全清楚为什么该程序具有上述行为。

答案1

我不会说“应该”,但你当然,因为uncompress实用程序的file参数是如此指定,为了方便起见:

文件的路径名。如果文件已经拥有了.Z指定后缀,应将其用作输入文件,输出文件应命名为文件.Z后缀已删除。否则,文件应用作输出文件的名称和文件.Z附加的后缀应用作输入文件。

(我没有检查过,但这可能是预先存在的行为,延续到规范中。)

也支持这一点gzip,至少其默认.gz扩展名是这样的:

echo Hello > test
gzip test
ls -l test*
gunzip test
ls -l test*
cat test

相关内容