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


43

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:


35

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\Backupré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\*

Merci ManiacD, mais je n'arrive pas à obtenir que cela fonctionne -xr!? Svn * me donne une erreur et si j'essaie -xr! .Svn *, il n'exclura toujours pas .svn
Mikael Sundberg

vous avez besoin d'une barre oblique inverse après? svn pour que cela fonctionne, ce qui signifie d'exclure tout ce qui se trouve sous le répertoire .svn. -xr!? svn \ *
ManiacD

Ne vous inquiétez pas, j'ai eu beaucoup de problèmes au début pour que cela fonctionne également. Le commutateur d'exclusion 7-zip -x (-xr recurse directory) avec! exclut les noms de fichiers basés sur une recherche générique. Sans la barre oblique inverse, il tente d'exclure les noms de fichiers qui correspondent à? Svn * ie. asvn.log avec le \ * à la fin signifie ne rien inclure sous un répertoire correspondant? svn
ManiacD

Pour plus d'informations sur l'utilisation des caractères génériques, consultez le fichier d'aide fourni avec 7-Zip. M'a aidé à résoudre une tâche similaire il y a quelques jours. 7-Zip utilise des caractères génériques un peu ... différents;)
släcker 23/08/2009

3
Et si vous avez trébuché ici à la recherche d'une exclusion de dossier générale, notez que cela ?doit correspondre à "period-svn" ( .svn), afin de sauter tout le dossier que SkipMevous utiliseriez-xr!SkipMe\*
drzaus

13

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.


Merci pour le conseil d'exportation. Disponible sur le menu TortoiseSVN aussi.
Arnold Spence

12

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.


4

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é.


3

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é.


la partie astérisque est la plus importante. Cela devrait avoir plus de votes positifs.
Valerio

0

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\*.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.