Назад | Перейти на главную страницу

Каков синтаксис опции lftp mirror -x (exclude)?

Я хочу отразить каталог, используя 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 /\..+/$

чтобы исключить все папки, начинающиеся с точки.