lftp 的镜像 -x(排除)选项的语法是什么?

lftp 的镜像 -x(排除)选项的语法是什么?

我想使用镜像目录lftp,但我想排除某些子目录。

我试过

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

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

但他们都没有排除.svn目錄。

答案1

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

诀窍在于,.svn目录它只会与以斜杠结尾的模式匹配:

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

答案2

从我的实验来看,包含和排除模式似乎与整个路径匹配,没有初始 / 但目录结尾有 /。

因此,如果您尝试匹配可能出现在树中的任何级别的目录名(如 .svn),则需要此 RE:

(^\|/).svn/

^ 选项与顶层的 .svn 匹配,而 / 选项与低于该级别的任何级别匹配。

| 字符对于 lftp 来说很重要,因此需要被晃动。

答案3

我在用着

--exclude /\..+/$

排除所有以点开头的文件夹。

相关内容