如何查找名称包含任何两个字符串的文件?

alw*_*btc 1 linux search

我想查找名称包含“Mar”或“Jun”的文件,我该怎么做?

Dan*_*eck 6

您的第一种方法 ( find . -type f -name "Mar" -name "Jun") 有两个问题:

  • find 默认情况下使用逻辑“与”组合不同的规则
  • 你做了一个精确的名字匹配

因此,唯一可能的比赛是文件是被命名为究竟“君”“月”,即无。


相反,请执行以下操作:

  • 您可以在名称搜索中使用通配符(*表示任何可能为空的字符序列),用引号括起来以防止 shell 解释
  • 将两个规则与-o()组合在一起——这需要您将两个替代规则括在括号中以覆盖通常的运算符优先级,或重复通用-type f规则

例子:

$ ls -1
1st-of-June
January
March
$ find . -type f -name '*Mar*' -o -type f -name '*Jun*'
./1st-of-June
./March
Run Code Online (Sandbox Code Playgroud)