find 命令使用/不使用 -print 给出不同的输出

find 命令使用/不使用 -print 给出不同的输出
find src/ -name "*.cc" -o -name "*.cpp" -print
find src/ -name "*.cc" -o -name "*.cpp"

预期行为是查找目录及其所有子目录中的所有 C++ 文件。据我了解,-print 命令是默认命令。但是,这两个命令给出的结果截然不同。如果我将它们重定向到一个文件(分别为printednotprinted):

$ wc -l printed notprinted
1813 printed
1979 notprinted

对每个已排序的文件进行比较对我没什么帮助。没有明确的模式来判断哪些文件被排除在外printed

这里发生了什么?

答案1

答案是优先级。如果没有指定操作,则它会打印,但如果您指定操作,则它会执行您要求的操作。您的示例-print仅打印.cpp文件。您可能想要:

find src/ \( -name "*.cc" -o -name "*.cpp" \) -print

您可以设置具有不同操作的多个条件。

相关内容