Como eu uso o 7-zip para arquivos de backup, mas excluo alguns diretórios

43

Eu gostaria de usar o 7-zip para fazer backup de um diretório, mas gostaria que ele excluísse todos os diretórios com o nome ".svn" (em qualquer lugar da árvore de origem). Alguém sabe se isso é possível e, nesse caso, como?

    
por Mikael Sundberg 23.08.2009 / 11:28

6 respostas

35

Para excluir todos os diretórios .svn, adicione o -xr!?svn\* switch

Por exemplo, o seguinte criará um backup do diretório C:\Project\To\Backup , excluindo todas as pastas que satisfizerem o ?svn :

"C:\Program Files-Zipz.exe" a -r -tzip -y -xr!?svn\* Project.zip C:\Project\To\Backup\*
    
por 23.08.2009 / 13:31
13

Em vez de usar o 7-Zip para excluir as pastas .svn (ou potencialmente _svn), recomendamos o uso de (use svn.exe de SlikSVN ) para exportar a cópia de trabalho para uma pasta temporária :

svn export C:\Path\To\WC C:\Backup\Staging

Em seguida, use o 7-Zip da seguinte forma:

7z.exe a "C:\Parth\To\Archive" "C:\Backup\Staging\*" -bd t7z -v2g -r

Em seguida, exclua a pasta de teste.

Isso é o que eu faço para fazer backup de minhas cópias de trabalho locais.

    
por 23.08.2009 / 11:45
12

Você pode excluir arquivos com 7zip usando uma lista de arquivos ou diretórios:

/path/to7Zip/7z a -bd f:/backup/backup_2009-08-23_daily.zip home \
          '-xr@\path\to\backup_daily_exclude.lst'

O arquivo de exclusão se parece com:

home\Photos\iPod*
home\dhltd\*
BlogMatrix\Sparks\db\*.archive
home\eclipse\*
.svn

A chave é o -xr e, em particular, o "r", que indica a aplicação da lista de exclusão recursivamente, para cada nível do diretório. Você pode querer usar 2 listas de arquivos de exclusão, uma para absoluto e outra para exclusões recursivas. O acima é de um script bash que é executado no cygwin.

    
por 23.08.2009 / 19:50
4

Quando usei

"C:\Program Files-Zipz.exe" a -r -ttar -xr!?git\* aufs2-util.tar aufs2-util\*

acabou adicionando o diretório .git que eu não queria, mudando para

"C:\Program Files-Zipz.exe" a -r -ttar -xr!?git\ aufs2-util.tar aufs2-util\*

obteve o resultado desejado.

    
por 22.02.2010 / 00:30
3

Quando usei

7z a "D:\codebase\w.7z" "D:\codebase\Edison\otm\Webapp" -t7z -mx0 -xr!WEB-INF\*

o diretório WEB-INF não foi excluído. Adicionando um asterisco antes do nome do diretório

7z a "D:\codebase\w.7z" "D:\codebase\Edison\otm\Webapp" -t7z -mx0 -xr!*WEB-INF\*

Obteve o resultado desejado.

    
por 03.08.2010 / 12:53
0

Para mim, eu estava tentando fazer backup de vários diretórios de código do maven e queria excluir qualquer diretório chamado "target":

"C:\Program Files-Zipz.exe" a -r -tzip -y -xr!*\target\* site.zip C:\code\site\

O parâmetro de exclusão relevante foi -xr!*\target\* .

    
por 01.08.2011 / 20:13