我尝试在使用构建存档时排除某个目录zip
。以下是我尝试过的方法:
$ zip home.zip -y -r HOME -x '/AppData' -x '/AppData*' -x '/AppData/*' -x 'AppData' -x 'AppData*' -x 'AppData/*'
生产:
adding: HOME/ (stored 0%)
adding: HOME/AppData/ (stored 0%)
adding: HOME/AppData/a (deflated 39%)
adding: HOME/AppData/LocalLow/ (stored 0%)
adding: HOME/AppData/LocalLow/Sun/ (stored 0%)
adding: HOME/AppData/LocalLow/Sun/Java/ (stored 0%)
adding: HOME/AppData/LocalLow/Sun/Java/a (deflated 39%)
adding: HOME/AppData/LocalLow/Sun/Java/Deployment/ (stored 0%)
adding: HOME/AppData/LocalLow/Sun/Java/Deployment/a (deflated 39%)
我的目录树如下所示:
./HOME
./HOME/AppData
./HOME/AppData/a
./HOME/AppData/LocalLow
./HOME/AppData/LocalLow/Sun
./HOME/AppData/LocalLow/Sun/Java
./HOME/AppData/LocalLow/Sun/Java/a
./HOME/AppData/LocalLow/Sun/Java/Deployment
./HOME/AppData/LocalLow/Sun/Java/Deployment/a
所以它似乎忽略了我的-x
选择。
该选项的正确语法是什么-x
?
成立这个帖子但正如你在上面看到的,它并没有解决我的问题。
我在 Windows 7 上的 Cygwin 1.7.35 上使用 Info-ZIP 3.0。
答案1
尝试将其设置为-x '*AppData/*'
答案2
做就是了
-x */AppData/*
# or
--exclude */AppData/*
不要忘记添加第一个斜杠,因为否则它也会匹配其中包含“AppData”的任何路径,而不仅仅是以“AppData”开头的路径。
答案3
看起来匹配的路径zip
包括您给它的根路径元素,除非根是.
就我而言,如果我想排除 下的任何内容LocalLow
,我需要:
$ zip home.zip -y -r HOME -x 'HOME/AppData/LocalLow/*'
产量:
adding: HOME/ (stored 0%)
adding: HOME/AppData/ (stored 0%)
adding: HOME/AppData/a (deflated 39%)
如果您cd
进入HOME
目录并用作.
根目录,则无需在排除路径中指定根元素:
$ cd HOME
$ zip home.zip -y -r . -x 'AppData/LocalLow/*'
adding: AppData/ (stored 0%)
adding: AppData/a (deflated 39%)