【问题标题】:Linux command to remove multiple files with two dot in the file nameLinux命令删除文件名中有两个点的多个文件
【发布时间】:2014-03-28 13:34:36
【问题描述】:

示例文件名是

abc.edf.xdc
pqe.ide.xdc

rm -rf "*.\*.xdc" 不工作

【问题讨论】:

  • 你需要这个来删除所有包含恰好两个点的文件吗?

标签: linux rm


【解决方案1】:

去掉引号就可以了:

/tmp/a$ touch abc.edf.xdc pqe.ide.xdc
/tmp/a$ ls
abc.edf.xdc  pqe.ide.xdc
/tmp/a$ rm -f *.*.xdc
/tmp/a$ ls
/tmp/a$ 

【讨论】:

    【解决方案2】:

    rm -rf *.xdc 应该匹配所有这些文件。无需添加额外的“*.”。

    【讨论】:

    • 除非他想专门删除至少有 2 个点的那些,但你是对的,我不认为他可能认为这是必要的 :)
    • @CMoi 我相信 *.*.xdc 也匹配 foo.bar.more.dots.in.here.xdc,因为* 接受其中的任何文本,包括点。
    • 是的,这就是为什么我说“至少 2 个点”
    • @CMoi 是的,你是对的 :) 在这种情况下,两个响应都不能确保被删除的文件包含恰好两个点... :-p跨度>
    【解决方案3】:

    来源man bash

    用双引号括起来的字符保留字面值 引号内的所有字符,除了 $、`、\ 和启用历史扩展时,!。字符 $ 和 ` 在双引号中保留它们的特殊含义。

    所以不用双引号,直接给rm -vf *.*.xdc

    【讨论】:

      猜你喜欢
      • 2011-05-29
      • 1970-01-01
      • 1970-01-01
      • 2012-08-23
      • 1970-01-01
      • 2022-01-13
      • 2018-03-02
      • 1970-01-01
      • 2020-02-04
      相关资源
      最近更新 更多