Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Delete node_modules folder recursively from a specified path using command line

Print out a list of directories to be deleted:

find . -name 'node_modules' -type d -prune

Delete directories from the current working directory:

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

Alternatively you can use trash (brew install trash) for staged deletion:

find . -name node_modules -type d -prune -exec trash {} +

Try https://github.com/voidcosmos/npkill

npx npkill

it will find all node_modules and let you remove them.

npkill


Improving on the accepted answer,

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

I found that the command would run a very long time to fetch all folders and then run a delete command, to make the command resumable I'd suggest using \; and to see progress of the command being run use -print to see the directory being deleted.

Note: You must first cd into the root directory and then run the command or instead of find . use find {project_directory}

To delete folders one by one

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

To delete folders one by one and printing the folder being deleted

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

Edit:

For the people who like interactive way of doing this refer to @jeckep answer, run this in the directory that you wish to prune.

npx npkill

I have come across with this solution,

  • first find the folder using find and specify name of the folder.
  • execute delete command recursively -exec rm -rf '{}' +

run the following command to delete folders recursively

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