Wie kann ich das Durchsuchen bestimmter Verzeichnisse mit „find“ vermeiden?

Wie kann ich das Durchsuchen bestimmter Verzeichnisse mit „find“ vermeiden?

Derzeit habe ich diesen Suchbefehl, der das Durchsuchen bestimmter Verzeichnisse vermeidet:

find . \! \( -name ".hg" -prune \) \! \( -name "localhost" -prune \) \! \( -name "logs" -prune \) -type f

Der Befehl funktioniert wie gewünscht, aber ich suche nach einer prägnanteren Lösung. Ich habe das Gefühl, dass ich mich ständig wiederhole, und es muss doch einen eleganteren/kürzeren Weg geben, dasselbe zu erreichen.

Antwort1

find . \( \( -name .hg -o -name localhost -o -name logs \) -prune \) -o -type f

Antwort2

find . -not \( -regex ".*/(.hg|localhost|logs)" -prune \) -type f

verwandte Informationen