1

Я провел большую часть дня, пытаясь выяснить это. У меня есть каталог, который содержит несколько каталогов проекта, и в каждом каталоге проекта есть каталог node_modules . Я хотел бы удалить все скрытые файлы, включенные в каталог node_modules но сохранить каталог node_modules , т.е. иметь каталог node_modules .

Я создал пару квази-решений, но ни одно из них не сохраняет / сохраняет каталог node_modules . Я использую GNU find и grep на macOS 10.12.x с помощью homebrew с рыбными раковинами.

1 ответ1

2

Чтобы удалить все файлы в любом каталоге, который находится в текущем и называется 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .