Have you ever wanted to zip an entire directory, but exclude the contents of one or two (or more!) sub-directories, using PuTTy (or another terminal) over SSH.
I know I have – this is a great way to backup a website, or make a copy of a website, and exclude big folders you don’t need, like the contents of a caching, or some other backup folder, which you just don’t need.
The command below will allow you to do just that!
zip -r zipperall.zip dir -x dir/subdir/**\*
Obviously you should replace zipfilename, dir, and subdir, with your actual directy names.
If you have more than one subdirectory to zip up, just add a space and repeat the code at the end, for example:
zip -r zipperall.zip dir -x dir/subdir/**\* dir/anothersubdir/**\*
This will zip up the entire contents of your directory, but skipping the contents of those sub directories.
Note you might need to put quotes around some of this in certain flavours, but this should work in Ubuntu or CentOS Linux, which are our favourites.
Leave a comment below if this helped – or didn’t help – you, or you have a general code improvement you’d like to leave.