Chciałbym użyć 7-zip do utworzenia kopii zapasowej katalogu, ale chciałbym, aby wykluczył wszystkie katalogi o nazwie „.svn” (w dowolnym miejscu w drzewie źródłowym). Czy ktoś wie, czy jest to możliwe, a w takim razie jak?
Chciałbym użyć 7-zip do utworzenia kopii zapasowej katalogu, ale chciałbym, aby wykluczył wszystkie katalogi o nazwie „.svn” (w dowolnym miejscu w drzewie źródłowym). Czy ktoś wie, czy jest to możliwe, a w takim razie jak?
Odpowiedzi:
Aby wykluczyć wszystkie katalogi .svn, musisz dodać -xr!?svn\*
przełącznik
Na przykład następujące czynności utworzą kopię zapasową C:\Project\To\Backup
katalogu z wyłączeniem folderów, które spełniają ?svn
:
"C:\Program Files\7-Zip\7z.exe" a -r -tzip -y -xr!?svn\* Project.zip C:\Project\To\Backup\*
?
jest to dopasowanie do „period-svn” ( .svn
), aby pominąć wszystko w folderze, SkipMe
którego byś użył-xr!SkipMe\*
Zamiast używać 7-Zip do wykluczenia folderów .svn (lub potencjalnie _svn), zaleciłbym użycie polecenia svn export (użyj svn.exe z SlikSVN ), aby wyeksportować kopię roboczą do folderu tymczasowego:
svn export C:\Path\To\WC C:\Backup\Staging
Następnie użyj 7-Zip w następujący sposób:
7z.exe a "C:\Parth\To\Archive" "C:\Backup\Staging\*" -bd t7z -v2g -r
Następnie usuń folder pomostowy.
Tak robię, aby wykonać kopię zapasową lokalnych kopii roboczych.
Możesz wykluczyć pliki za pomocą 7zip przy użyciu listy plików lub katalogów:
/path/to7Zip/7z a -bd f:/backup/backup_2009-08-23_daily.zip home \
'-xr@\path\to\backup_daily_exclude.lst'
Plik wykluczenia wygląda następująco:
home\Photos\iPod*
home\dhltd\*
BlogMatrix\Sparks\db\*.archive
home\eclipse\*
.svn
Kluczem jest -xr, aw szczególności „r”, który wskazuje, że rekursywnie stosuje listę wykluczeń na każdym poziomie katalogu. Możesz użyć 2 list wykluczeń plików, jednej dla absolutnej i jednej dla wykluczeń rekurencyjnych. Powyższe pochodzi ze skryptu bash, który działa w cygwin.
Kiedy użyłem
"C:\Program Files\7-Zip\7z.exe" a -r -ttar -xr!?git\* aufs2-util.tar aufs2-util\*
w końcu dodałem katalog .git, którego nie chciałem, zmieniając go na
"C:\Program Files\7-Zip\7z.exe" a -r -ttar -xr!?git\ aufs2-util.tar aufs2-util\*
uzyskać pożądany wynik.
Kiedy użyłem
7z a "D:\codebase\w.7z" "D:\codebase\Edison\otm\Webapp" -t7z -mx0 -xr!WEB-INF\*
katalog WEB-INF nie został wykluczony. Dodanie gwiazdki przed nazwą katalogu
7z a "D:\codebase\w.7z" "D:\codebase\Edison\otm\Webapp" -t7z -mx0 -xr!*WEB-INF\*
Mam pożądany wynik.