在第三版中“学习 Bash shell”由 Newham 和 Rosenblatt 撰写,第 19 页提到解压缩名为gcc.tar.Z
.
键入
uncompress gcc.tar &
(您可以省略 Z)。
为什么作者说“你可以省略 Z”?为什么不直接保留呢?...
在man uncompress
Ubuntu 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