LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 8469|回复: 10

tar -zxvf 与 tar zxvf 有何区别呢?

[复制链接]
发表于 2010-10-25 08:27:14 | 显示全部楼层 |阅读模式
RT

不是很明白,故有此一问....
发表于 2010-10-25 10:50:34 | 显示全部楼层
没区别,不带'-'是老style,带的是短style,具体info tar看一下
回复 支持 反对

使用道具 举报

发表于 2010-10-25 21:19:38 | 显示全部楼层
如果 tar 的版本夠新,用 tar xf xxxxxxxx 就行了,系統會自動調用相應的工具來解壓
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-10-26 11:32:03 | 显示全部楼层
谢谢楼上两位...
回复 支持 反对

使用道具 举报

发表于 2010-11-1 22:18:39 | 显示全部楼层
一般没区别,记得那本书说过tar是linux中唯一一个不用给参数加"-"的命令
回复 支持 反对

使用道具 举报

发表于 2010-11-2 06:41:04 | 显示全部楼层
只有GNU的tar支持不带-
其它的tar必须有-
回复 支持 反对

使用道具 举报

发表于 2010-11-5 11:01:25 | 显示全部楼层
ps也不用加 - 呀  好像一个是bsd风格一个是posix风格吧
回复 支持 反对

使用道具 举报

发表于 2010-11-7 22:30:53 | 显示全部楼层
不带 - 的是旧的风格,带 - 的是较新的风格,ps命令也是这样,有bsd,sysv和gnu long三种风格的选项,为了兼容不同习惯的用户。

具体来说,还有更多的不同。
旧风格中,其中f放在任何位置都是一样的,比如tar xzvf foo.tar.gz 和tar fxvz foo.tar.gz 是一个意思,foo.tar.gz总是被解析为f选项的参数。

但是在新风格中,比如 tar -zxvf  foo.tar.gz 和 tar -fxvz  foo.tar.gz 就完全不同,前者表示展开一个名为foo.tar.gz经过gzip压缩的归档,并且输出详细的信息。后者则表示处理归档xvz中的foo.tar.gz文件,而且由于没有必须的操作选项,会错误提示:“tar: 您必须从"-Acdtrux"或是"--test-label"选项中指定一个”
因为 -zxvf相当于-z -x -v -f ,并且zxv三个选项后面不需要带参数,而-f选项后面必要有参数。所以当写成-fxvz的时候,xvz被认为是-f选项的参数。

tar的info中专门有一节讲述了选项的风格问题。
回复 支持 反对

使用道具 举报

发表于 2010-11-18 19:00:35 | 显示全部楼层
楼上的解释相当清晰,我也被提示过上面的-f参数的错误,所以后来都放最后面去了。
我个人按打命令的习惯,还是加了“-”来打命令。
回复 支持 反对

使用道具 举报

发表于 2010-12-6 14:54:53 | 显示全部楼层
原来有这样一说,学习了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表