查找命令:-or 选项不起作用

Hi-*_*gel 5 find wildcards patterns

我想为匹配模式的每个文件执行一个命令。但是似乎正确的命令对我不起作用,我不知道为什么。

$ find . -type f -name '*.c' -or -name '*.h' -or -name '*.cpp' -exec ls {} \;
$ ls
script.sh  test.c  test.h
Run Code Online (Sandbox Code Playgroud)

gro*_*xda 9

尝试按照手册页中的说明将表达式添加到括号中:

find . -type f \( -name '*.c' -or -name '*.h' -or -name '*.cpp' \) -exec ls {} \;
Run Code Online (Sandbox Code Playgroud)

应该管用。