Search code examples
macoscommand-line7zip

7za ax (add files excluding) syntax at macOS console.


7za help lists the following switches for including/excluding files in the archive:

  -ai[r[-|0]]{@listfile|!wildcard}: Include archives
  -ax[r[-|0]]{@listfile|!wildcard}: eXclude archives

Suppose I want to pack My Directory to MyArchive.zip excluding subdirectory Irrelevant.

I tried the following

7za -ax"My Directory/Irrelevant" -tzip MyArchive.zip "My Directory"

7za a -x"My Directory/Irrelevant" -tzip MyArchive.zip "My Directory"

7za a -x@"My Directory/Irrelevant" -tzip MyArchive.zip "My Directory"

7za a -x"@My Directory/Irrelevant" -tzip MyArchive.zip "My Directory"

7za a -x"Irrelevant" -tzip MyArchive.zip "My Directory"

Neither of those is recognised.


Solution

  • The correct syntax is:

    7za a -x\!"My Directory/Irrelevant/*" -tzip MyArchive.zip "My Directory"
    

    or even this

    7za a -x\!"My Directory/Irrelevant" -tzip MyArchive.zip "My Directory"
    

    Note the '\' before exclamation mark, as otherwise bash will treat '!' as an event. Tried to put '!' under quotes - didn't work.