Excluindo um diretório ao compactar arquivos

11

Eu tenho um script bash que faz algo assim:

zip -0 ../backup/backup.zip \
-r ./* \
-x \*CVS\* \
-x *Thumbs.db* \

O diretório que está fazendo backup é um arquivo SVN (costumava ser o CVS no passado). Eu fui incapaz de conseguir isso para excluir .svn e seu conteúdo. Qual é a maneira mais limpa de excluir .svn (recursivamente através da árvore inteira)?

    
por wag 27.01.2011 / 17:40

2 respostas

8

zip -0 ../backup/backup.zip -r . -x "*CVS*" "*Thumbs.db*" "*.svn*"

-x também aceita uma lista de exclusões.

Como alternativa, crie uma lista de arquivos com suas exclusões e adicione-as lá. O exclude.lst:

*CVS*
*Thumbs.db*
*.svn*
exclude.lst

com o comando:

zip -0 ../backup/backup.zip -r . [email protected]
    
por 27.01.2011 / 18:29
2
zip ../backup/backup.zip \
  -x '/CVS/*' -x '*/CVS/*' \
  -x '/.svn/*' -x '*/.svn/*' \
  -x '/Thumbs.db' -x '*/Thumbs.db' \
  -r .

Observe que seus padrões de exclusão, conforme publicados, não estão certos, excluem qualquer arquivo ou diretório cujo nome contenha CVS .

    
por 27.01.2011 / 20:15