使用 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 {} +