Исключение каталога при архивировании файлов

11

У меня есть скрипт bash, который делает что-то вроде этого:

zip -0 ../backup/backup.zip \
-r ./* \
-x \*CVS\* \
-x *Thumbs.db* \

Каталог, который он резервирует, является архивом SVN (раньше это был CVS). Я не смог заставить его исключить .svn и его содержимое. Какой самый чистый способ исключить .svn (рекурсивно через все дерево)?

шутник
источник

Ответы:

8
zip -0 ../backup/backup.zip -r . -x "*CVS*" "*Thumbs.db*" "*.svn*"

-x также принимает список исключений.

Или создайте список файлов с вашими исключениями и добавьте их туда.
Exclude.lst:

*CVS*
*Thumbs.db*
*.svn*
exclude.lst

с помощью команды:

zip -0 ../backup/backup.zip -r . -x@exclude.lst
шутник
источник
-x "*CVS*"исключает любой файл или каталог, имя которого содержится CVSв качестве подстроки (то же самое для .svn).
Жиль "ТАК - перестать быть злым"
2
zip ../backup/backup.zip \
  -x '/CVS/*' -x '*/CVS/*' \
  -x '/.svn/*' -x '*/.svn/*' \
  -x '/Thumbs.db' -x '*/Thumbs.db' \
  -r .

Обратите внимание, что ваши шаблоны исключения как опубликованные не совсем верны, они исключают любой файл или каталог, имя которого содержит CVS .

Жиль "ТАК - прекрати быть злым"
источник