
Допустим, я хочу найти все файлы в каталоге (рекурсивно), но исключить те, которые находятся, например, в .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