it-swarm-eu.dev

Come utilizzare 7-Zip per eseguire il backup dei file, ma escludere alcune directory

Vorrei usare 7-Zip per fare il backup di una directory, ma mi piacerebbe che escludesse tutte le directory chiamate ".svn" (ovunque nell'albero dei sorgenti). Qualcuno sa se questo è possibile e in tal caso come?

43
Mikael Sundberg

Per escludere tutte le directory .svn è necessario aggiungere l'opzione -xr!?svn\*

Ad esempio quanto segue creerà un backup della directory C:\Project\To\Backup escludendo qualsiasi cartella che soddisfi ?svn:

"C:\Program Files\7-Zip\7z.exe" a -r -tzip -y -xr!?svn\* Project.Zip C:\Project\To\Backup\*
35
ManiacD

Invece di usare 7-Zip per escludere le cartelle .svn (o potenzialmente _svn), ti consiglio di usare il comando svn export (usa svn.exe da SlikSVN ) per esportare la copia di lavoro in una cartella temporanea:

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

Quindi utilizzare 7-Zip come segue:

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

Quindi eliminare la cartella di staging.

Questo è quello che faccio per fare il backup delle mie copie di lavoro locali.

13
Richard Slater

Puoi escludere file con 7Zip usando un elenco di file o directory:

/path/to7Zip/7z a -bd f:/backup/backup_2009-08-23_daily.Zip home \
          '[email protected]\path\to\backup_daily_exclude.lst'

Il file di esclusione ha il seguente aspetto:

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

La chiave è -xr e in particolare la "r" che indica applica l'elenco di esclusioni in modo ricorsivo, a ogni livello della directory. Si consiglia di utilizzare 2 elenchi di file di esclusione uno per assoluto e uno per esclusioni ricorsive. Quanto sopra è da uno script bash che viene eseguito in cygwin.

12
Tim Desjardins

Quando l'ho usato

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

ha finito per aggiungere la directory .git che non volevo, cambiandola

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

ottenuto il risultato desiderato.

4
user28989

Quando l'ho usato

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

la directory WEB-INF non è stata esclusa. Aggiunta di un asterisco prima del nome della directory

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

Hai ottenuto il risultato desiderato.

3
Ashutosh Jindal

Per quanto mi riguarda, stavo tentando di eseguire il backup di un gruppo di directory di codici Maven e volevo escludere qualsiasi directory denominata "target":

"C:\Program Files\7-Zip\7z.exe" a -r -tzip -y -xr!*\target\* site.Zip C:\code\site\

Il parametro di esclusione pertinente era -xr!*\target\*.

0
Kit Menke