Ответ 1
Для исключения файлов только из папки поиска:
find . -not \( -path './.git' -prune \) -not \( -path './node_modules' -prune \) -type f
Если вы хотите исключить определенные пути, находящиеся во вложенных папках, вы можете сделать это с помощью подстановочного символа *
.
Предположим, что у вас есть node_modules
внутри stuff1
и stuff2
, а также dist
и lib
папок:
find . -not \( -path './.git' -prune \) -not \( -path './node_modules' -prune \) -not \( -path './*/node_modules' -prune \) -not \( -path './*/dist' -prune \) -not \( -path './*/lib' -prune \) -type f
Протестировано в Windows с помощью git bash 1.9.5
Похоже, что он не работает должным образом в Windows, когда передается фильтр типа -name '*.js'
. Обходной путь может заключаться в том, чтобы вместо -name
использовать -name
и pipe вместо grep
.
Престижность @Даниэль К. Собрал