web-dev-qa-db-fra.com

Supprimer le dossier node_modules de manière récursive à partir d'un chemin spécifié à l'aide de la ligne de commande

J'ai plusieurs projets NPM enregistrés dans un répertoire local. Maintenant, je veux effectuer une sauvegarde de mes projets sans le dossier node_modules, car il prend beaucoup de place et peut également être récupéré à tout moment à l'aide de npm install.

J'ai donc besoin d'une solution pour supprimer tous les dossiers node_modules de manière récursive à partir d'un chemin spécifié à l'aide de l'interface de ligne de commande . Toute suggestion/aide est extrêmement appréciable.

36
Sumit

Réponse originale:

find . -name 'node_modules' -type d -Prune -exec rm -rf '{}' +

Vous pouvez également utiliser corbeille (npm install --global trash-cli) pour sauvegarder la suppression:

find . -name node_modules -type d -Prune -exec trash {} +
80
Darius M.

J'ai rencontré cette solution,

  • commencez par trouver le dossier en utilisant find et spécifiez le nom du dossier.
  • exécuter la commande de suppression récursivement -exec rm -rf '{}' +

exécutez la commande suivante pour supprimer les dossiers de manière récursive

find /path -type d -name "node_modules" -exec rm -rf '{}' +

7
Sumit

Améliorer la réponse acceptée,

find . -name 'node_modules' -type d -Prune -exec rm -rf '{}' +

J'ai trouvé que la commande fonctionnerait très longtemps pour extraire tous les dossiers, puis exécuter une commande de suppression. Pour que la commande soit reprise, je suggérerais d'utiliser \; et pour voir la progression de la commande en cours d'exécution, utilisez -print pour voir le répertoire supprimé. .

Remarque: Vous devez d'abord cd dans le répertoire racine, puis exécuter la commande ou, à la place de find ., utilisez find {project_directory}.

Pour supprimer les dossiers un à un

find . -name 'node_modules' -type d -Prune -exec rm -rf '{}' \;

Pour supprimer les dossiers un par un et imprimer le dossier en cours de suppression

find . -name 'node_modules' -type d -Prune -print -exec rm -rf '{}' \;
5
Sidharth

Ça marche vraiment bien

find . -name "node_modules" -exec rm -rf '{}' +
0
Ankit Sinha