![Linux find -iname 选项可以采用更多一种模式吗](https://linux22.com/image/178024/Linux%20find%20-iname%20%E9%80%89%E9%A1%B9%E5%8F%AF%E4%BB%A5%E9%87%87%E7%94%A8%E6%9B%B4%E5%A4%9A%E4%B8%80%E7%A7%8D%E6%A8%A1%E5%BC%8F%E5%90%97.png)
使用 Linuxfind
命令-iname
选项,我想查找并移动具有许多不同扩展名 ( .pdf, .doc, .xlx, .ppt
) 的文件。我知道我可以使用多种模式grep
。但这也可以做到吗find
?
答案1
是的,但不是-iname
独自一人。find
本身有一个“OR”:
expr1 -o expr2
Or; expr2 is not evaluated if expr1 is true.
所以你可以这样做:
find /path/to/dir -iname '*.pdf' -o -iname '*.doc' -o -iname '*.xlx' -o -iname '*.ppt'
请注意,如果您需要对其中任何一个匹配文件(例如-exec
、-print
)执行某些操作,或者添加适用于的额外过滤全部(例如-type f
),或者换句话说,如果您需要匹配其中任何一个和做/检查其他事情,因为find
就像许多其他语言一样和优先级高于或者,你需要使用括号:
find /path/to/dir '(' -iname '*.pdf' \
-o -iname '*.doc' \
-o -iname '*.xlx' \
-o -iname '*.ppt' \
')' -type f -exec ls -ld {} +