我总是使用tar czf file.tar.gz dirname
代替tar -czf file.tar.gz dirname
(没有-
)因为更快
我知道......从文档中,我所做的是错误的。
但是我命令的效果是什么?
(到目前为止,我没有看到我的命令有任何问题...有时我认为为什么文档建议tar -czf file.tar.gz dirname
而不是tar czf file.tar.gz dirname
?)
答案 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年以来的语法很有趣。