Tente colocá-lo como -x '*AppData/*'
Estou tentando excluir um determinado diretório ao criar um arquivo usando zip
. Veja o que tentei:
$ zip home.zip -y -r HOME -x '/AppData' -x '/AppData*' -x '/AppData/*' -x 'AppData' -x 'AppData*' -x 'AppData/*'
Produz:
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%)
Minha árvore de diretórios se parece com:
./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
Portanto, parece estar ignorando minhas opções -x
.
Qual é a sintaxe correta para a opção -x
?
Encontrado este post mas como você pode ver acima, não resolveu o meu problema.
Estou usando o Info-ZIP 3.0 no Cygwin 1.7.35 no Windows 7.
Tente colocá-lo como -x '*AppData/*'
Parece que o caminho com o qual zip
está correspondendo inclui o elemento do caminho raiz que você fornece, a menos que a raiz seja .
No meu caso, se eu quisesse excluir qualquer coisa abaixo de LocalLow
, eu precisava:
$ zip home.zip -y -r HOME -x 'HOME/AppData/LocalLow/*'
Rendimento:
adding: HOME/ (stored 0%)
adding: HOME/AppData/ (stored 0%)
adding: HOME/AppData/a (deflated 39%)
Se você, em vez disso, cd
no diretório HOME
e usar .
como a raiz, não será necessário especificar o elemento raiz no caminho de exclusão:
$ cd HOME
$ zip home.zip -y -r . -x 'AppData/LocalLow/*'
adding: AppData/ (stored 0%)
adding: AppData/a (deflated 39%)