Verankerte Ausschlüsse mit find oder fd

Verankerte Ausschlüsse mit find oder fd

Angenommen, ich möchte alle Dateien in einem Verzeichnis (rekursiv) finden, aber diejenigen in Unterverzeichnissen auslassen .git. node_modulesIch kann Folgendes tun:

$ fd -uut f -E .git -E node_modules

Aber das wird zum Beispiel ausschließen ./some/dir/node_modules/*oder so etwas.

In diesem Fall ist das wahrscheinlich in Ordnung, aber ich möchte nicht jedes Mal, wenn ich etwas finden muss, darüber nachdenken, ob die nicht verankerte Suche ausreicht. Ganz zu schweigen davon, dass dies in manchen Fällen nicht der Fall ist.

Wie schließe ich aus ./dir, aber nicht ./**/dir?

Antwort1

Um zwischen den beiden Fällen zu unterscheiden, verwenden Sie das -pathPrädikat:

$ find . -path ./a -prune -o -type f -print

verwandte Informationen