I know it is possible to exclude a particular folder by a command like this:

tar --exclude='/srv/www/project/node_modules' -zcvf /backup/project.tgz .

My question how to exclude any folder named node_modules anywhere within the entire /srv/www directory, to exclude it and exclude all folders under it?

  • If what you mean is you want to exclude all directories that start with node_modules in their names like node_modules123 and node_modules_new etc. then append a * to the excluded directory name and use the command like so tar -zcvf /backup/project.tar.gz --exclude "/srv/www/project/node_modules*" /srv/www/ and please edit your question and make it clear. Thank you
    – Raffa
    Oct 26, 2019 at 19:33
  • @Raffa, I have just re-edited my question and made it clearer.
    – W.M.
    Oct 26, 2019 at 19:40

1 Answer 1


To exclude the directory named node_modules wherever it is located under /srv/www/ even if there are multiple copies of it under different sub-directories, just do not specify a path in the --exclude part and use it like this:

tar -zcvf /backup/project.tar.gz --exclude "node_modules" /srv/www/

This will exclude all directories and files named exactly node_modules and all sub-directories and files under them anywhere in /srv/www/.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.