tar -xvfz foo.tar.gz
返回错误 tar: z: Cannot open: No such file or directory
这是完全可以理解的——f
开关需要一个文件名,所以需要放在最后。
但是,省略连字符tar xvfz foot.tar.gz
可以解压缩和解压文件。
我已经在 OS X 10.8 和 Ubuntu 12.04 上测试过了。
任何想法为什么?
[编辑添加]
我总是使用tar -zxvf foo.tar.gz
. 然而,这个问题是因为这个 xkcd而出现的,当有人坚持认为这tar xvfz
会奏效时,我感到很惊讶。
Nap*_*r_X 63
tar 有 3 种语法类型(根据this):
对于旧的选项语法,所有字母都必须跟在“tar”之后,并且必须全部落入一个没有空格的单丛中。字母的顺序并不重要,只要这些字母的参数在选项组之后遵循相同的顺序即可。
这种编写 tar 选项的旧方式甚至会让有经验的用户感到惊讶。例如,两个命令:
# tar cfz archive.tar.gz file
# tar -cfz archive.tar.gz file
Run Code Online (Sandbox Code Playgroud)
是完全不同的。第一个示例使用“archive.tar.gz”作为选项“f”的值并识别选项“z”。然而,第二个示例使用 'z' 作为选项 'f' 的值 - 可能不是预期的。
保留旧选项是为了与旧版本的 tar 兼容。
带有“-”的命令相当于
tar -czf archive.tar.gz file
tar -cf archive.tar.gz -z file
tar cf archive.tar.gz -z file
Run Code Online (Sandbox Code Playgroud)
这就是您的示例在没有“-”而不是“-”的情况下工作的原因
归档时间: |
|
查看次数: |
21084 次 |
最近记录: |