9

I want to mirror a directory using lftp but I want to exclude certain subdirectories.

I tried

mirror -R -e -x ^\.svn$ /documents/ /test

and

mirror -R -e -x /^\.svn$/ /documents/ /test

but neither of them excluded the .svn directories.

3 Answers 3

10

mirror -R -e -x ^\.svn$ /documents/ /test is just fine.

The trick is, as .svn is a directory it will only be matched by a pattern that ends in a slash:

mirror -R -e -x ^\.svn/$ /documents/ /test

2

From my experiments, it seems the include and exclude patterns are matched against the whole path with no initial / but with a trailing / for a directory.

Thus if you're trying to match a directory name like .svn which can occur at any level in the tree, you need this RE:

(^\|/).svn/

The ^ alternative matches .svn at the top level and the / alternative matches any level below that.

The | character is significant to lftp so needs to be sloshed.

1

I'm using

--exclude /\..+/$

to exclude all folders starting with a dot.

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.