web-dev-qa-db-fra.com

Comment utiliser 7-Zip pour sauvegarder les fichiers, mais exclure certains répertoires

J'aimerais utiliser 7-Zip pour sauvegarder un répertoire, mais j'aimerais qu'il exclue tous les répertoires nommés ".svn" (n'importe où dans l'arborescence des sources). Est-ce que quelqu'un sait si c'est possible et dans ce cas comment?

43
Mikael Sundberg

Pour exclure tous les répertoires .svn, vous devez ajouter le commutateur -xr!?svn\*.

Par exemple, ce qui suit créera une sauvegarde du répertoire C:\Project\To\Backup en excluant les dossiers satisfaisant ?svn:

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

Au lieu d'utiliser 7-Zip pour exclure les dossiers .svn (ou potentiellement _svn), je vous recommande d'utiliser la commande svn export (utilisez svn.exe à partir de SlikSVN ) pour exporter la copie de travail dans un dossier temporaire:

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

Ensuite, utilisez 7-Zip comme suit:

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

Supprimez ensuite le dossier intermédiaire.

C'est ce que je fais pour sauvegarder mes copies de travail locales.

13
Richard Slater

Vous pouvez exclure des fichiers avec 7Zip en utilisant une liste de fichiers ou de répertoires:

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

Le fichier d'exclusion ressemble à:

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

La clé est le -xr et en particulier le "r" qui indique que la liste d'exclusion est appliquée de manière récursive à chaque niveau du répertoire. Vous pouvez utiliser deux listes de fichiers exclus, une pour les exclusions absolues et une pour les exclusions récursives. Ce qui précède provient d’un script bash qui s’exécute en cygwin.

12
Tim Desjardins

Quand j'ai utilisé

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

il a fini par ajouter le répertoire .git que je ne voulais pas, le changer en

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

obtenu le résultat souhaité.

4
user28989

Quand j'ai utilisé

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

le répertoire WEB-INF n'a pas été exclu. Ajout d'un astérisque avant le nom du répertoire

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

Vous avez le résultat souhaité.

3
Ashutosh Jindal

Pour moi, j'essayais de sauvegarder un tas de répertoires de code maven et je voulais exclure tout répertoire nommé "cible":

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

Le paramètre d'exclusion pertinent était -xr!*\target\*.

0
Kit Menke