Yashwardhan Pauranik
Yashwardhan Pauranik

Reputation: 5566

Exclude flag in zip not excluding directory as expected

I'm trying to zip every file in my current directory to deploy.zip using the command:

zip -r deploy.zip -x "**/node_modules/**"

This command doesn't work and still zips all the node_modules and it's descendant folders and files. This command is basically running on the GitHub Action panel.

What's wrong in here?

Upvotes: 1

Views: 834

Answers (1)

Inian
Inian

Reputation: 85875

It looks like your exclude glob expression isn't quite right. The expression **/node_modules/** looks for absolute filenames from the search path that has the string /node_modules/ to be present. But running the zip from your current path won't include the leading / for any of the file/directory names under node_modules. I would suggest doing it as '*node_modules*' or './node_modules/*' or 'node_modules/*' for your exclude path definition.

Also note that using ** in your glob pattern doesn't mean the same as using simple wild card expansion as *. The former has a special meaning in zip when --wild-stop-dirs option is enabled. See zip(1) - Linux man page

Upvotes: 3

Related Questions