我想查找名称包含“Mar”或“Jun”的文件,我该怎么做?
答案1
您的第一种方法(find . -type f -name "Mar" -name "Jun"
)有两个问题:
find
默认使用逻辑“and”组合不同的规则- 您进行了完全姓名匹配
所以唯一可能的匹配是文件被命名为确切地“俊”和“Mar”,即无。
相反,请执行以下操作:
- 您可以在名称搜索中使用通配符(
*
表示任何可能为空的字符序列),并将其括在引号中以防止被 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
答案2
使用find
及其regex
选项:
find -regex '.*\(Mar\|Jun\).*'
答案3
ls *{Jun,Mar}*
这将列出所有包含 Jun 或 Mar 的文件名
答案4
此命令将起作用
[max@localhost ~]$ find / -type f -name Mar -o -name Jun ./三月 ./六月
更新
那么这就是答案
查找 / -type f -name "*Mar*" -o -type f -name "*Jun*"