
find src/ -name "*.cc" -o -name "*.cpp" -print
find src/ -name "*.cc" -o -name "*.cpp"
預期行為是尋找目錄及其所有子目錄中的所有 C++ 檔案。據我了解,-print 命令是預設命令。然而,這兩個命令為我帶來了明顯不同的結果。如果我將它們重定向到一個檔案(分別為printed
和notprinted
):
$ wc -l printed notprinted
1813 printed
1979 notprinted
區分每個排序的文件對我沒有多大幫助。對於排除在外的內容沒有明確的模式printed
。
這裡發生了什麼事?
答案1
答案是優先考慮。如果沒有給出任何操作,那麼它會列印,但如果您指定了一個操作,那麼它會執行您所要求的操作。您的範例-print
僅列印.cpp
文件。您可能想要:
find src/ \( -name "*.cc" -o -name "*.cpp" \) -print
您可以有多個條件和不同的操作。