Ich arbeite unter Linux (Ubuntu) und möchte bestimmte Verzeichnisse (wie .hg) ausschließen, wenn ich ein
machefind | less
Ich habe Folgendes versucht, um das .hg-Verzeichnis von der Auflistung auszuschließen, aber es scheint nicht zu funktionieren.
find -type d ( ! -iname .hg )
find -type d ( ! -name .hg )
find -type d ( ! -iname .hg )
Wie schließe ich .directory
aus in einem Suchbefehl
Akzeptierte Antwort:
Auf der Suche nach einem ähnlichen find
Lösung Ich habe die hilfreiche Erklärung zur Verwendung der Option „-prune“ von „find“ in sh entdeckt? von Laurence Gonsalves.
Sie könnten etwas verwenden wie:
find . ( -type d -name .hg -prune ) -o ( -type f -name "foo" -print )
oder (ohne den Namen)
find . ( -type d -name .hg -prune ) -o ( -type f -print )
Die (escaped) Klammern (
und )
Gruppieren Sie die Tests (type
und name
) und entsprechende Aktionen (prune
und print
) zusammen links und rechts vom ODER (-o
).
Seit -o
einen niedrigeren Vorrang hat als die Gegenüberstellung, können Sie die Klammern weglassen, wenn Sie möchten. Viele find
Implementierungen lassen Sie auch den abschließenden -print
überspringen .
find . -type d -name .hg -prune -o -type f -name "foo" -print