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?
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?
Réponses:
Pour exclure tous les répertoires .svn, vous devez ajouter le -xr!?svn\*
commutateur.
Par exemple, ce qui suit va créer une sauvegarde du C:\Project\To\Backup
répertoire en excluant tout dossier satisfaisant ?svn
:
"C:\Program Files\7-Zip\7z.exe" a -r -tzip -y -xr!?svn\* Project.zip C:\Project\To\Backup\*
?
doit correspondre à "period-svn" ( .svn
), afin de sauter tout le dossier que SkipMe
vous utiliseriez-xr!SkipMe\*
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 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.
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 doit être 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.
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é.
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é.