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

tal*_*150 3 find options

使用 Linuxfind命令-iname选项,我想查找和移动具有许多不同扩展名 ( .pdf, .doc, .xlx, .ppt) 的文件。我知道我可以将多种模式与grep. 但这也可以做到find吗?

ter*_*don 5

是的,但不是-iname独自一人。find本身有一个“OR”:

   expr1 -o expr2
          Or; expr2 is not evaluated if expr1 is true.
Run Code Online (Sandbox Code Playgroud)

所以你可以这样做:

find /path/to/dir -iname '*.pdf' -o -iname '*.doc' -o -iname '*.xlx' -o -iname '*.ppt'
Run Code Online (Sandbox Code Playgroud)

请注意,如果您需要在任何这些配套文件(如中执行一些动作-exec-print),或添加适用于额外的过滤所有的(如-type f,如果你需要或者那些匹配),或者换句话说,并做/检查别的东西,因为 infind像在许多其他语言中并且or具有更高的优先级,你需要使用括号:

find /path/to/dir '(' -iname '*.pdf' \
                      -o -iname '*.doc' \
                      -o -iname '*.xlx' \
                      -o -iname '*.ppt' \
                  ')' -type f -exec ls -ld {} +
Run Code Online (Sandbox Code Playgroud)