如何使用具有多个条件的“查找”命令?

如何使用具有多个条件的“查找”命令?

此命令将打印给定目录中的 *.cpp 文件名:

find . -name "*.cpp" -print  

我怎样才能打印 *.cpp 和 *.h 文件名?

答案1

尝试这个:

find -regex ".*\.\(cpp\|h\)$"

具有更多替代方案的示例:

find -regex ".*\.\(cpp\|c\|h\|o\)$"

答案2

答案3

我来举个例子。它将搜索所有者为 1000 的文件并将它们写入“uid.list”,搜索组为 1000 的文件并将它们写入“gid.list”,它将跳过以 /proc、/sys、/dev 开头的路径。组合条件的优点是文件系统只扫描一次。如下:

find / \
\( \( -path "/proc" -or -path "/sys" -or -path "/dev" \) -prune \) -or \
\( \( -user 1000 -fprint "uid.list" \)  , 
   \( -group 1000 -fprint "gid.list" \) \)

答案4

使用:

find . -name "*.cpp" -print -o -name "*.h" -print

相关内容