Come utilizzo 7-zip per eseguire il backup dei file, ma escludo alcune directory


43

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:


35

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

Ad esempio, ciò che segue creerà un backup della C:\Project\To\Backupdirectory 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\*

Grazie ManiacD, ma non riesco a farlo funzionare -xr!? Svn * mi dà un errore e se provo -xr! .Svn * non esclude ancora .svn
Mikael Sundberg

hai bisogno di una barra rovesciata dopo? svn perché funzioni, il che significa escludere tutto sotto la directory .svn. -xr!? svn \ *
ManiacD

Non preoccuparti, inizialmente ho avuto anche un sacco di problemi per farlo funzionare. Il 7-zip esclude switch -x (-xr recurse directory) con! esclude i nomi di file in base a una ricerca con caratteri jolly. Senza la barra rovesciata sta cercando di escludere i nomi di file che corrispondono a? Svn * ie. asvn.log con \ * alla fine significa non includere nulla sotto una directory corrispondente? svn
ManiacD

Per i dettagli su come utilizzare i caratteri jolly, consultare il file della guida fornito con 7-Zip. Mi ha aiutato a risolvere un compito simile qualche giorno fa. 7-Zip usa i caratteri jolly un po '... diversi;)
släcker

3
E se ti sei imbattuto qui alla ricerca dell'esclusione generale delle cartelle, nota che ?è necessario abbinare "period-svn" ( .svn), quindi per saltare tutto nella cartella SkipMeche -xr!SkipMe\*
useresti

13

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.


Grazie per il suggerimento sull'esportazione. Disponibile anche nel menu TortoiseSVN.
Arnold Spence,

12

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.


4

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.


3

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.


la parte dell'asterisco è la più importante. Questo dovrebbe ottenere più voti.
Valerio,

0

Per me, stavo cercando di eseguire il backup di un sacco di directory di codice 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 exclude pertinente era -xr!*\target\*.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.