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

Я хотел бы использовать 7-zip для резервного копирования каталога, но я бы хотел, чтобы он исключил все каталоги с именем «.svn» (где-нибудь в исходном дереве). Кто-нибудь знает, если это возможно, и в этом случае, как?

42 голоса | спросил Mikael Sundberg 23 PM00000010000000931 2009, 13:28:09

6 ответов


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 23 PM00000030000004631 2009, 15:31:46
13

Вместо использования 7-Zip для исключения папок .svn (или потенциально _svn) я бы рекомендовал использовать svn export команда (используйте 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

Затем удалите промежуточную папку.

Это то, что я делаю для резервного копирования моих локальных рабочих копий.

ответил Richard Slater 23 PM00000010000000631 2009, 13:45:06
12

Вы можете исключить файлы с помощью 7zip, используя список файлов или каталогов:

/path/to7Zip/7z a -bd f:/backup/backup_2009-08-23_daily.zip home \
          '[email protected]\path\to\backup_daily_exclude.lst'

Исключительный файл выглядит так:

home\Photos\iPod*
home\dhltd\*
BlogMatrix\Sparks\db\*.archive
home\eclipse\*
.svn

Ключ -xr и, в частности, «r», который указывает рекурсивно применять список исключений к каждому уровню каталога. Вы можете использовать 2 списка исключаемых файлов для абсолютного и один для рекурсивных исключений. Вышеизложенное из сценария bash, который запускается в cygwin.

ответил Richard Slater 23 PM00000010000000631 2009, 13:45:06
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\*

получил желаемый результат.

ответил 22 FebruaryEurope/MoscowbMon, 22 Feb 2010 02:30:11 +0300000000amMon, 22 Feb 2010 02:30:11 +030010 2010, 02:30:11
2

Когда я использовал

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

Получил желаемый результат.

ответил Ashutosh Jindal 3 PM00000020000005031 2010, 14:53:50
0

Для меня я пытался создать резервную копию каталогов кодов maven и хотел исключить любой каталог с именем «target»:

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

Соответствующим параметром исключения был -xr!*\target\*.

ответил Kit Menke 1 PM000000100000004931 2011, 22:13:49

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132