Vorrei utilizzare 7-zip per eseguire il backup di una directory, ma vorrei escludere tutte le directory denominate ".svn" (in qualsiasi punto dell'albero dei sorgenti). Qualcuno sa se questo è possibile e in quel caso come?
Vorrei utilizzare 7-zip per eseguire il backup di una directory, ma vorrei escludere tutte le directory denominate ".svn" (in qualsiasi punto dell'albero dei sorgenti). Qualcuno sa se questo è possibile e in quel caso come?
Risposte:
Per escludere tutte le directory .svn è necessario aggiungere l' -xr!?svn\*
interruttore
Ad esempio, ciò che segue creerà un backup della C:\Project\To\Backup
directory escludendo tutte le cartelle che soddisfano ?svn
:
"C:\Program Files\7-Zip\7z.exe" a -r -tzip -y -xr!?svn\* Project.zip C:\Project\To\Backup\*
?
è necessario abbinare "period-svn" ( .svn
), quindi per saltare tutto nella cartella SkipMe
che -xr!SkipMe\*
Invece di usare 7-Zip per escludere le cartelle .svn (o potenzialmente _svn), consiglierei 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 gestione temporanea.
Questo è ciò che faccio per eseguire il backup delle mie copie di lavoro locali.
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 \
'-xr@\path\to\backup_daily_exclude.lst'
Il file di esclusione è simile a:
home\Photos\iPod*
home\dhltd\*
BlogMatrix\Sparks\db\*.archive
home\eclipse\*
.svn
La chiave è -xr e in particolare la "r" che indica applicare ricorsivamente l'elenco di esclusione a ciascun livello della directory. È possibile che si desideri utilizzare 2 elenchi di file di esclusione uno per l'assoluta e uno per le esclusioni ricorsive. Quanto sopra proviene da uno script bash che viene eseguito in Cygwin.
Quando 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 in
"C:\Program Files\7-Zip\7z.exe" a -r -ttar -xr!?git\ aufs2-util.tar aufs2-util\*
ottenuto il risultato desiderato.
Quando 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.