найти все каталоги с именем node_modules без подкаталогов с именем node_modules

Попробуйте это,

find./ -type f \( -name filename1.ext -o -name filename2.ext -o -name filename3.ext \) -exec grep 'string' {} \;
  • -type fтак как вы ищете файлы, лучше указать тип, чтобы быстрее получить результат.

  • -oозначает ИЛИ, это позволяет вам добавить больше имен файлов в поиск

3
26.04.2020, 15:54
1 ответ

Вам необходимо "удалить" node_modulesкаталоги из поиска, как только они будут найдены:

find. -name 'node_modules' -prune

Пример:

$ mkdir foo/{a,a/b,a/b/c,}/node_modules/{a,a/b,a/b/c,}/node_modules/ -p; cd foo
$ find. -name 'node_modules'
./a/b/c/node_modules
./a/b/c/node_modules/a/b/c/node_modules
./a/b/c/node_modules/a/b/node_modules
./a/b/c/node_modules/a/node_modules
./a/b/c/node_modules/node_modules
./a/b/node_modules
./a/b/node_modules/a/b/c/node_modules
./a/b/node_modules/a/b/node_modules
./a/b/node_modules/a/node_modules
./a/b/node_modules/node_modules
./a/node_modules
./a/node_modules/a/b/c/node_modules
./a/node_modules/a/b/node_modules
./a/node_modules/a/node_modules
./a/node_modules/node_modules
./node_modules
./node_modules/a/b/c/node_modules
./node_modules/a/b/node_modules
./node_modules/a/node_modules
./node_modules/node_modules
$ find. -name 'node_modules' -prune
./a/b/c/node_modules
./a/b/node_modules
./a/node_modules
./node_modules
9
19.03.2021, 02:25

Теги

Похожие вопросы