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