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?
Réponses
Trop de publicités?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\*
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.
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.
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é.
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é.
- Réponses précédentes
- Plus de réponses