43 votes

Comment utiliser 7-zip pour sauvegarder des fichiers, mais exclure certains répertoires

Je voudrais utiliser 7-zip pour sauvegarder un répertoire, mais je voudrais exclure tous les répertoires nommés ".svn" (n'importe où dans l'arborescence source). Est-ce que quelqu'un sait si c'est possible et dans ce cas comment?

35voto

YSN Points 231

Pour exclure tous les répertoires .svn, vous devez ajouter l'interrupteur -xr!?svn\*

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

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

13voto

Damian Points 213

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

svn export C:\Chemin\Vers\WC C:\Sauvegarde\Staging

Ensuite, utilisez 7-Zip comme suit :

7z.exe a "C:\Chemin\Vers\Archive" "C:\Sauvegarde\Staging\*" -bd t7z -v2g -r

Ensuite, supprimez le dossier de mise en scène.

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

12voto

Fabian Points 119

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

/chemin/vers7Zip/7z a -bd f:/backup/backup_2009-08-23_daily.zip home \
          '-xr@\chemin\vers\backup_daily_exclude.lst'

Le fichier d'exclusion ressemble à ceci :

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

La clé est le -xr et en particulier le "r" qui indique d'appliquer la liste d'exclusion de manière récursive, à chaque niveau du répertoire. Vous pouvez vouloir utiliser 2 listes de fichiers d'exclusion, 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 sous cygwin.

4voto

Lorsque j'ai utilisé

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

cela a fini par ajouter le répertoire .git que je ne voulais pas, en le modifiant à

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

j'ai obtenu le résultat souhaité.

3voto

Ashutosh Jindal Points 661

Lorsque 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'était pas 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\*

J'ai obtenu le résultat souhaité.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X