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.