Ich möchte 7-zip zum Sichern eines Verzeichnisses verwenden, möchte jedoch alle Verzeichnisse mit dem Namen ".svn" (an einer beliebigen Stelle im Quelltextbaum) ausschließen. Weiß jemand, ob und wie dies möglich ist?
Ich möchte 7-zip zum Sichern eines Verzeichnisses verwenden, möchte jedoch alle Verzeichnisse mit dem Namen ".svn" (an einer beliebigen Stelle im Quelltextbaum) ausschließen. Weiß jemand, ob und wie dies möglich ist?
Antworten:
Um alle .svn-Verzeichnisse auszuschließen, müssen Sie den -xr!?svn\*
Schalter hinzufügen
Das Folgende erstellt beispielsweise eine Sicherungskopie des C:\Project\To\Backup
Verzeichnisses mit Ausnahme aller zufriedenstellenden Ordner ?svn
:
"C:\Program Files\7-Zip\7z.exe" a -r -tzip -y -xr!?svn\* Project.zip C:\Project\To\Backup\*
?
.svn
SkipMe
-xr!SkipMe\*
Anstatt 7-Zip zum Ausschließen der Ordner .svn (oder möglicherweise _svn) zu verwenden, würde ich empfehlen, den Befehl svn export (verwenden Sie svn.exe von SlikSVN ) zu verwenden, um die Arbeitskopie in einen temporären Ordner zu exportieren:
svn export C:\Path\To\WC C:\Backup\Staging
Dann benutze 7-Zip wie folgt:
7z.exe a "C:\Parth\To\Archive" "C:\Backup\Staging\*" -bd t7z -v2g -r
Löschen Sie dann den Staging-Ordner.
Das ist, was ich mache, um meine lokalen Arbeitskopien zu sichern.
Sie können Dateien mit 7zip über eine Liste von Dateien oder Verzeichnissen ausschließen:
/path/to7Zip/7z a -bd f:/backup/backup_2009-08-23_daily.zip home \
'-xr@\path\to\backup_daily_exclude.lst'
Die Ausschlussdatei sieht folgendermaßen aus:
home\Photos\iPod*
home\dhltd\*
BlogMatrix\Sparks\db\*.archive
home\eclipse\*
.svn
Der Schlüssel ist das -xr und insbesondere das "r", das angibt, dass die Ausschlussliste rekursiv auf jede Ebene des Verzeichnisses angewendet wird. Möglicherweise möchten Sie zwei Ausschlussdateilisten verwenden, eine für absolute und eine für rekursive Ausschlüsse. Das obige stammt aus einem Bash-Skript, das in Cygwin ausgeführt wird.
Als ich benutzt habe
"C:\Program Files\7-Zip\7z.exe" a -r -ttar -xr!?git\* aufs2-util.tar aufs2-util\*
Es endete damit, das .git-Verzeichnis hinzuzufügen, das ich nicht wollte, und es in zu ändern
"C:\Program Files\7-Zip\7z.exe" a -r -ttar -xr!?git\ aufs2-util.tar aufs2-util\*
habe das gewünschte Ergebnis.
Als ich benutzt habe
7z a "D:\codebase\w.7z" "D:\codebase\Edison\otm\Webapp" -t7z -mx0 -xr!WEB-INF\*
Das WEB-INF-Verzeichnis wurde nicht ausgeschlossen. Hinzufügen eines Sternchens vor dem Verzeichnisnamen
7z a "D:\codebase\w.7z" "D:\codebase\Edison\otm\Webapp" -t7z -mx0 -xr!*WEB-INF\*
Habe das gewünschte Ergebnis.