“tar czf file.tar.gz dirname”或“tar -czf file.tar.gz dirname”?

时间:2010-12-19 14:11:21

标签: unix gzip tar

我总是使用tar czf file.tar.gz dirname代替tar -czf file.tar.gz dirname(没有-)因为更快

我知道......从文档中,我所做的是错误的。

但是我命令的效果是什么?

(到目前为止,我没有看到我的命令有任何问题...有时我认为为什么文档建议tar -czf file.tar.gz dirname而不是tar czf file.tar.gz dirname?)

3 个答案:

答案 0 :(得分:3)

全部在信息页面中:

“像短期选项一样,”旧选项“是单个字母。但是,旧选项必须一起写成一个单独的集合[...]这种旧式语法使得难以将选项字母与其相应的参数匹配,并且经常令人困惑。例如,在tar cvbf 20 /dev/rmt0命令中,20-b的参数,/dev/rmt0-f的参数,-v不是tar -c -v -b 20 -f /dev/rmt0的参数有一个相应的论点。即使使用像{{1}}这样的短选项也更清楚,将所有参数放在它们所属的选项旁边。“

你不想混淆你的用户,是吗?

答案 1 :(得分:0)

$ man tar 
  

与历史记录的兼容性支持捆绑参数格式   实现即可。它由一个初始单词组成(没有前导字符)   其中每个字符表示一个选项。参数分开进行   话。参数的顺序必须与相应的顺序匹配   捆绑命令字中的字符。例如,

  tar tbf 32 file.tar
  

指定三个标志t,b和f。 b和f标志都需要参数,   所以命令行上必须有两个额外的项目。 32是   b标志的参数,file.tar是f标志的参数。

答案 2 :(得分:0)

虽然@ user502515是正确的,但我始终使用tar cvf,希望@Captain也仍在使用它。它更清洁,如果某些用户感到困惑,他们可以man tar去学习。我接受新语法更明确,但旧语法很漂亮,此外,使用1979年以来的语法很有趣。