私の開発ルートディレクトリからすべてのディレクトリを探したいですnode_modules
。問題は、それnode_modules
自体にというサブディレクトリが含まれていることですnode_modules
。最上位node_modules
フォルダだけを見つける方法は?私は試した:
find -iname "node_modules" | grep -P 'node_modules.*(?!node_modules)'
ただし、サブディレクトリはフィルタリングされません。
答え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