tar -xvfz foo.tar.gz返回一个错误tar: z: Cannot open: No such file or directory
这是完全可以理解的-- f开关需要一个文件名,所以必须是最后一个。
但是,省略连字符tar xvfz foot.tar.gz会工作,并对文件进行解压缩和解压缩。
我已经在OSX10.8和Ubuntu12.04上测试了这一点。
知道为什么吗?
编辑以添加
我总是使用tar -zxvf foo.tar.gz。然而,这个问题是由于这个xkcd而出现的,而且当有人坚持tar xvfz会工作时,我感到惊讶。

发布于 2013-02-01 15:03:09
tar有三种类型的语法(根据这 ):
对于旧的选项语法,所有的字母都必须跟在"tar“后面,并且都必须成一个没有空格的组块。字母的顺序并不重要,只要这些字母的参数在一组选项之后遵循相同的顺序。
这种旧的编写tar选项的方式甚至会让有经验的用户感到惊讶。例如,这两个命令:
# tar cfz archive.tar.gz file
# tar -cfz archive.tar.gz file是完全不同的。第一个示例使用‘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这就是为什么你的例子没有"-“而不是"-”的原因。
https://serverfault.com/questions/474561
复制相似问题