【问题标题】:"tar czf file.tar.gz dirname" or "tar -czf file.tar.gz dirname"?“tar czf file.tar.gz 目录名”还是“tar -czf file.tar.gz 目录名”?
【发布时间】:2010-12-19 14:11:20
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: unix gzip tar


    【解决方案1】:

    一切都在信息页面中:

    “与短选项一样,“旧选项”是单个字母。然而,旧的选项必须作为一个单独的集合来编写[...],这种旧式语法使得选项字母与其对应的参数匹配变得困难,并且经常令人困惑。例如,在命令tar cvbf 20 /dev/rmt0中,20-b的参数,/dev/rmt0-f的参数,-v没有对应的参数。即使使用像 tar -c -v -b 20 -f /dev/rmt0 这样的短选项也更清晰,将所有参数放在它们所属的选项旁边。”

    您不想让您的用户感到困惑,是吗?

    【讨论】:

      【解决方案2】:
      $ man tar 
      

      支持捆绑参数格式以与历史记录兼容 实现。它由一个初始单词组成(没有前导 - 字符) 其中每个字符表示一个选项。参数作为单独的跟随 字。参数的顺序必须与相应的顺序匹配 捆绑的命令字中的字符。例如,

        tar tbf 32 file.tar
      

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

      【讨论】:

        【解决方案3】:

        虽然@user502515 是对的,但我总是使用tar cvf,我希望@Captain 仍然在使用它。它更干净,如果有些用户觉得它很困惑,他们可以去man tar 学习它。我承认新语法更明确,但旧语法很漂亮,而且使用 1979 年的语法很有趣。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-04-04
          • 2012-04-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-03-17
          相关资源
          最近更新 更多