【问题标题】:Whats's this "--" for in this command xargs command这个命令中的“--”是什么 xargs 命令
【发布时间】:2016-08-06 13:12:38
【问题描述】:

在 Unix 中,

ls -t | tail -n +4 | xargs rm --

ls -t | tail -n +4 | xargs rm 

请问有什么区别?

【问题讨论】:

  • -- 表示选项标志的结束。我只从我的问题中知道:askubuntu.com/questions/419137/… 。可能是您的示例中使用它的原因
  • 差异将在包含名为 -rf 的文件和更多目录的目录中变得最明显。

标签: options xargs rm


【解决方案1】:

-- 表示命令行上的所有后续参数都被视为操作数而不是选项(即使参数以--- 开头)。

所以,ls -t | tail -n +4 | xargs rm -- 表示由xargs 提供给rm 的所有参数都将被视为文件名(即操作数)。

ls -t | tail -n +4 | xargs rm 的情况下,如果当前目录中出现以--- 开头的文件名,rm 将尝试将其解释为一个选项(并且很可能会出现意外结果)。

【讨论】:

    【解决方案2】:

    这个“--”在这个命令 xargs 命令中是什么意思

    -- 表示“开关到此结束”

    【讨论】:

    • ... 它与xargs 无关,它从xargs 传递到rmrm(或者更好的是用于参数解析的getopt 库)将停止选项处理(并忽略它)。并非所有rm 都可能真的这样做,但这是一个posix 推荐。请参阅此处的示例文档:gnu.org/software/libc/manual/html_node/Argument-Syntax.html
    猜你喜欢
    • 2012-05-10
    • 2022-12-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多