Як використовувати 7-zip для резервного копіювання файлів, але виключити деякі каталоги


43

Я хотів би використовувати 7-zip для резервного копіювання каталогу, але я хотів би, щоб він виключив усі каталоги з назвою ".svn" (де-небудь у дереві джерела). Хтось знає, чи можливо це, і в такому випадку як?

Відповіді:


35

Щоб виключити всі .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\*

Дякую ManiacD, але я не можу змусити це працювати -xr !? svn * видає мені помилку, і якщо я спробую -xr! .Svn *, це все одно не виключає .svn
Mikael Sundberg

вам потрібен зворотний нахил після? svn, щоб він працював, що означає, щоб виключити все під каталогом .svn. -xr!? svn \ *
ManiacD

Не хвилюйтеся, у мене були проблеми, які спочатку змусили його працювати. 7-zip виключає перемикач -x (-xr каталог рекурсів) з! виключає назви файлів на основі пошуку підстановки. Без зворотної косої риси намагається виключити назви файлів, які відповідають? Svn * тобто. asvn.log із значенням \ * в кінці означає, що нічого не міститься під каталогом, який відповідає? svn
ManiacD

Детальніше про те, як використовувати символи символів, ознайомтеся з файлом довідки, що постачається із 7-Zip. Допоміг мені вирішити подібне завдання кілька днів тому. 7-Zip трохи використовує підстановку… інше;)
släcker

3
І якщо ви натрапили сюди в пошуках загального виключення папки, зверніть увагу , що ?це відповідає «період-SVN» ( .svn), так , щоб пропустити все , що в папці SkipMeви будете використовувати-xr!SkipMe\*
drzaus

13

Замість використання 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

Потім видаліть папку інсценізації.

Це те, що я роблю для резервного копіювання своїх місцевих робочих копій.


Дякуємо за пораду щодо експорту. Доступно і в меню TortoiseSVN.
Арнольд Спенс

12

Ви можете виключати файли з 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.


4

Коли я користувався

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

отримали бажаний результат.


3

Коли я користувався

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

Отриманий бажаний результат.


Зірочка - найважливіша. Це повинно отримати більше результатів.
Валеріо

0

Для мене я намагався створити резервну копію купу каталогів коду Maven і хотів виключити будь-який каталог з назвою "target":

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

Релевантний параметр виключення був -xr!*\target\*.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.