递归查找具有特定扩展名的文件

A1X*_*A1X 72 linux bash

我正在尝试查找具有特定扩展名的文件.例如,我想找到所有名为Robert的.pdf和.jpg文件

我知道我可以做这个命令

$ find . -name '*.h' -o -name '*.cpp'
Run Code Online (Sandbox Code Playgroud)

但我需要指定除扩展名之外的文件名称.我只是想看看是否有可能避免再次重复写文件名的方法谢谢!

Fog*_*Day 92

我的偏好:

find . -name '*.jpg' -o -name '*.png' -print | grep Robert

  • 效果很好,但有一点缺点是它使您无法执行 `find -exec ...` (3认同)

Eta*_*ner 14

使用find-regex论点:

find . -regex '.*/Robert\.\(h\|cpp\)$'
Run Code Online (Sandbox Code Playgroud)

或者只是使用-name:

find . -name 'Robert.*' -a \( -name '*.cpp' -o -name '*.h' \)
Run Code Online (Sandbox Code Playgroud)


Mar*_*ell 5

find -name "*Robert*" \( -name "*.pdf" -o -name "*.jpg" \)
Run Code Online (Sandbox Code Playgroud)

-orepreents的OR条件,并根据需要在大括号内,你可以添加许多。因此,这表示要查找名称中任何位置包含“Robert”一词且名称以“pdf”或“jpg”结尾的所有文件。