Wie verwende ich 7-zip zum Sichern von Dateien, schließe aber einige Verzeichnisse aus

60033
Mikael Sundberg

Ich möchte 7-zip verwenden, um ein Verzeichnis zu sichern, aber ich möchte, dass es alle Verzeichnisse mit dem Namen ".svn" (irgendwo im Quellbaum) ausschließt. Weiß jemand, ob dies möglich ist und in diesem Fall wie?

43

6 Antworten auf die Frage

35
ManiacD

Um alle .svn-Verzeichnisse auszuschließen, müssen Sie den -xr!?svn\*Schalter hinzufügen

Im Folgenden wird beispielsweise eine Sicherung des C:\Project\To\BackupVerzeichnisses erstellt, wobei alle Ordner, die die Anforderungen erfüllen, ausgeschlossen werden ?svn:

"C:\Program Files\7-Zip\7z.exe" a -r -tzip -y -xr!?svn\* Project.zip C:\Project\To\Backup\* 
Danke ManiacD, aber ich kann das nicht zum Laufen bringen -xr!? Svn \ * gibt mir einen Fehler und wenn ich -xr! .Svn \ * versuche, schließt es immer noch nicht .svn aus Mikael Sundberg vor 14 Jahren 0
Sie brauchen einen Backslash nach? svn, damit es funktioniert, was bedeutet, dass alles unter dem .svn-Verzeichnis ausgeschlossen wird. -xr!? svn \\ * ManiacD vor 14 Jahren 0
Machen Sie sich keine Sorgen, dass ich jede Menge Probleme hatte, damit es auch funktioniert. Der 7-Zip-Exklusivschalter -x (-xr-Recurse-Verzeichnis) mit! schließt Dateinamen aus, die auf einer Platzhaltersuche basieren. Ohne den Backslash wird versucht, Dateinamen auszuschließen, die mit? Svn * übereinstimmen. asvn.log mit dem \\ * am Ende bedeutet, dass nichts unter einem Verzeichnis enthalten ist, das mit? svn übereinstimmt ManiacD vor 14 Jahren 0
Einzelheiten zur Verwendung von Platzhaltern finden Sie in der Hilfedatei von 7-Zip. Hat mir vor ein paar Tagen geholfen, eine ähnliche Aufgabe zu lösen. 7-Zip verwendet Wildcards ein bisschen ... anders;) släcker vor 14 Jahren 0
Ich habe es zum Laufen gebracht, seltsam, dass diese Antwort derzeit die einzige ist, die noch nicht bestätigt wurde. +1 und akzeptiert. Vielen Dank an alle, die meine Frage beantwortet haben. Mikael Sundberg vor 14 Jahren 0
Und wenn Sie hier auf der Suche nach einem allgemeinen Ordnerausschluss gestolpert sind, beachten Sie, dass das `?` Mit 'period-svn' (`.svn`) übereinstimmt. Um alles im Ordner` SkipMe` zu ​​überspringen, würden Sie `-xr! SkipMe verwenden \ * ` drzaus vor 10 Jahren 3
13
Richard Slater

Anstelle von 7-Zip zum Ausschließen der Ordner .svn (oder möglicherweise von _svn) 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 verwenden Sie 7-Zip wie folgt:

7z.exe a "C:\Parth\To\Archive" "C:\Backup\Staging\*" -bd t7z -v2g -r 

Dann löschen Sie den Bereitstellungsordner.

Dies ist, was ich mache, um meine lokalen Arbeitskopien zu sichern.

Danke für den Exporttipp. Auch im TortoiseSVN-Menü verfügbar. Arnold Spence vor 13 Jahren 0
12
Tim Desjardins

Sie können Dateien mit 7zip mithilfe einer 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 -xr und insbesondere das "r", das angibt, um die Ausschlussliste rekursiv auf jede Ebene des Verzeichnisses anzuwenden. Sie können zwei Ausschlussdateilisten verwenden, eine für absolute und eine für rekursive Ausschlüsse. Das obige ist von einem bash-Skript, das in cygwin ausgeführt wird.

4

Wenn ich gebraucht habe

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

Am Ende fügte er das .git-Verzeichnis hinzu, das ich nicht wollte, und änderte es in

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

das gewünschte Ergebnis erhalten.

3
Ashutosh Jindal

Wenn ich gebraucht 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 Sterns vor dem Verzeichnisnamen

7z a "D:\codebase\w.7z" "D:\codebase\Edison\otm\Webapp" -t7z -mx0 -xr!*WEB-INF\* 

Hab das gewünschte Ergebnis erhalten.

Sternchen ist der wichtigste Teil. Dies sollte weitere positive Bewertungen bringen. colthreepv vor 5 Jahren 0
0
Kit Menke

Für mich habe ich versucht, eine Reihe von Maven-Code-Verzeichnissen zu sichern und wollte jedes Verzeichnis namens "target" ausschließen:

"C:\Program Files\7-Zip\7z.exe" a -r -tzip -y -xr!*\target\* site.zip C:\code\site\ 

Relevanter Ausschlussparameter war -xr!*\target\*.