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 do qual está fazendo backup é um arquivo SVN (costumava ser o CVS naquele dia). Não consegui excluir o arquivo .svn e seu conteúdo. Qual é a maneira mais limpa de excluir .svn (recursivamente por toda a árvore)?

abanar
fonte

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 . -x@exclude.lst
abanar
fonte
-x "*CVS*"exclui qualquer arquivo ou diretório cujo nome contenha CVScomo uma substring (idem para .svn).
Gilles 'SO- stop be evil'
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 postados não estão certos, eles excluem qualquer arquivo ou diretório cujo nome contenha CVS .

Gilles 'SO- parar de ser mau'
fonte