Закрепленные исключения с помощью find или fd

Закрепленные исключения с помощью find или fd

Допустим, я хочу найти все файлы в каталоге (рекурсивно), но исключить те, которые находятся, например, в .gitи node_modulesподкаталогах. Я могу сделать:

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

Но это, например, исключит ./some/dir/node_modules/*или что-то в этом роде.

В этом случае это, вероятно, нормально, но я не хочу каждый раз, когда мне нужно что-то найти, думать, подойдет ли не привязанный поиск. Не говоря уже о том, что в некоторых случаях он не подойдет.

Как мне исключить ./dir, но не ./**/dir?

решение1

Чтобы различить эти два случая, используйте -pathпредикат:

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

Связанный контент