Я хочу отразить каталог, используя lftp
но я хочу исключить определенные подкаталоги.
Я попытался
mirror -R -e -x ^\.svn$ /documents/ /test
и
mirror -R -e -x /^\.svn$/ /documents/ /test
но ни один из них не исключил .svn каталоги.
mirror -R -e -x ^\.svn$ /documents/ /test
просто отлично.
Хитрость в том, что .svn это каталог ему будет соответствовать только шаблон, заканчивающийся косой чертой:
mirror -R -e -x ^\.svn/$ /documents/ /test
Из моих экспериментов кажется, что шаблоны включения и исключения сопоставляются со всем путем без начального /, но с завершающим / для каталога.
Таким образом, если вы пытаетесь сопоставить имя каталога, например .svn, которое может встречаться на любом уровне дерева, вам понадобится этот RE:
(^\|/).svn/
Альтернатива ^ соответствует .svn на верхнем уровне, а альтернатива / соответствует любому уровню ниже этого.
| Символ важен для lftp, поэтому его нужно пропустить.
я использую
--exclude /\..+/$
чтобы исключить все папки, начинающиеся с точки.