
Я потратил большую часть дня, пытаясь разобраться в этом.
решение1
Чтобы удалить все файлы в любом каталоге, который находится в текущем и имеет имя , node_modules
сохранив node_modules
:
find . -path '*/node_modules/*' -delete
(Это было протестировано с GNU find
, но я ожидаю, что BSD/OSX find
будет вести себя аналогично.)
Пример
Давайте создадим node_modules
каталог с файлами в нем:
$ mkdir -p node_modules/dir{1..3}
$ touch node_modules/file{1..3}
Теперь давайте посмотрим, какие файлы find
возвращает эта команда:
$ find . -path '*/node_modules/*'
./node_modules/dir3
./node_modules/dir1
./node_modules/file3
./node_modules/file2
./node_modules/file1
./node_modules/dir2
Здесь показаны файлывнутри node_modules
нонетсам каталог node_modules
. Таким образом, мы можем удалить файлы с помощью:
$ find . -path '*/node_modules/*' -delete
$ ls
node_modules