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

您可以有多個條件和不同的操作。

相關內容