查找所有名为 node_modules 的目录,没有名为 node_modules 的子目录

Kur*_*ipp 4 grep find

在我的开发根目录中,我想找到所有node_modules目录。问题是它node_modules本身包含名为node_modules. 如何只找到顶部node_modules文件夹?我试过:

find -iname "node_modules" | grep -P 'node_modules.*(?!node_modules)'
Run Code Online (Sandbox Code Playgroud)

但它不会过滤子目录。

mur*_*uru 7

node_modules一旦找到目录,您需要从搜索中“修剪”目录:

find . -name 'node_modules' -prune
Run Code Online (Sandbox Code Playgroud)

例子:

$ 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
Run Code Online (Sandbox Code Playgroud)