Linux find -iname 选项可以采用更多一种模式吗

Linux find -iname 选项可以采用更多一种模式吗

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

相关内容