Я хотів би використовувати 7-zip для резервного копіювання каталогу, але я хотів би, щоб він виключив усі каталоги з назвою ".svn" (де-небудь у дереві джерела). Хтось знає, чи можливо це, і в такому випадку як?
Я хотів би використовувати 7-zip для резервного копіювання каталогу, але я хотів би, щоб він виключив усі каталоги з назвою ".svn" (де-небудь у дереві джерела). Хтось знає, чи можливо це, і в такому випадку як?
Відповіді:
Щоб виключити всі .svn каталоги, потрібно додати -xr!?svn\*
комутатор
Наприклад, наступне створить резервну копію C:\Project\To\Backup
каталогу, виключаючи папки, які задовольняють ?svn
:
"C:\Program Files\7-Zip\7z.exe" a -r -tzip -y -xr!?svn\* Project.zip C:\Project\To\Backup\*
?
це відповідає «період-SVN» ( .svn
), так , щоб пропустити все , що в папці SkipMe
ви будете використовувати-xr!SkipMe\*
Замість використання 7-Zip для виключення .svn (або потенційно _svn) папок я рекомендую використовувати команду експорту svn (використовувати svn.exe з SlikSVN ) для експорту робочої копії у тимчасову папку:
svn export C:\Path\To\WC C:\Backup\Staging
Потім використовуйте 7-Zip таким чином:
7z.exe a "C:\Parth\To\Archive" "C:\Backup\Staging\*" -bd t7z -v2g -r
Потім видаліть папку інсценізації.
Це те, що я роблю для резервного копіювання своїх місцевих робочих копій.
Ви можете виключати файли з 7zip, використовуючи список файлів або каталогів:
/path/to7Zip/7z a -bd f:/backup/backup_2009-08-23_daily.zip home \
'-xr@\path\to\backup_daily_exclude.lst'
Файл виключення виглядає так:
home\Photos\iPod*
home\dhltd\*
BlogMatrix\Sparks\db\*.archive
home\eclipse\*
.svn
Ключ - -xr і, зокрема, "r", який вказує застосувати список виключення рекурсивно до кожного рівня каталогу. Можливо, ви хочете використовувати 2 списки виключень файлів, один - для абсолютного і один - для рекурсивних виключень. Викладене вище - із сценарію bash, який працює у cygwin.
Коли я користувався
"C:\Program Files\7-Zip\7z.exe" a -r -ttar -xr!?git\* aufs2-util.tar aufs2-util\*
в кінцевому підсумку додав каталог .git, який я не хотів, змінивши його на
"C:\Program Files\7-Zip\7z.exe" a -r -ttar -xr!?git\ aufs2-util.tar aufs2-util\*
отримали бажаний результат.
Коли я користувався
7z a "D:\codebase\w.7z" "D:\codebase\Edison\otm\Webapp" -t7z -mx0 -xr!WEB-INF\*
каталог WEB-INF не було виключено. Додавання зірочки перед назвою dir
7z a "D:\codebase\w.7z" "D:\codebase\Edison\otm\Webapp" -t7z -mx0 -xr!*WEB-INF\*
Отриманий бажаний результат.