
find src/ -name "*.cc" -o -name "*.cpp" -print
find src/ -name "*.cc" -o -name "*.cpp"
Das beabsichtigte Verhalten besteht darin, alle C++-Dateien in einem Verzeichnis und allen seinen Unterverzeichnissen zu finden. So wie ich es verstanden habe, war der Befehl -print der Standard. Diese beiden Befehle liefern mir jedoch deutlich unterschiedliche Ergebnisse. Wenn ich sie auf eine Datei umleite ( printed
bzw. notprinted
):
$ wc -l printed notprinted
1813 printed
1979 notprinted
Das Vergleichen der einzelnen sortierten Dateien hilft mir nicht viel. Es gibt kein klares Muster dafür, was von ausgeschlossen ist printed
.
Was ist denn hier los?
Antwort1
Die Antwort ist die Priorität. Wenn keine Aktion angegeben ist, wird gedruckt, aber wenn Sie eine Aktion angeben, wird das ausgeführt, was Sie angefordert haben. Ihr Beispiel druckt -print
nur .cpp
Dateien. Sie möchten wahrscheinlich:
find src/ \( -name "*.cc" -o -name "*.cpp" \) -print
Sie können mehrere Bedingungen mit unterschiedlichen Aktionen haben.