我正在使用LFTP使用CI/CD管道供应商从Docker Image将某些GIT文件镜像到我的服务器。这是按预期工作的,但是当使用LFTP的mirror
命令时,我需要排除以DOT开头的任何类型的文件,例如:
lftp -u $USERNAME, -e "[...] mirror [...] --ignore-time -x '/(.w*.*)/$' --exclude README.md [...]; exit" sftp://$HOST
但是,这些都无法正常工作,它只是跳出 -x
命令,然后使用下一个命令(例如 --exclude README.md
(。
我想不是使用-x
或--exclude
,因为从文档中:
镜子 [ opts ] [ source [ target ]]
[...]
-x rx,-exclude = rx排除匹配文件
这个也不起作用:
-x '/(.w*.*)/$'
-x /(.w*.*)/$
-x /(.w*.*)/
-x (.w*.*)
-x .w*.*
那怎么了?这不是 bash 的有效正格吗?
由于某种原因,对我有用的唯一方法是在--exclude
Regex结束时使用$
,就像:
lftp -u $USERNAME, -e "[...] mirror [...] --exclude '^..*$'[...]
没有线结束定界符,它似乎根本不起作用,只是忽略了--exclude
或-x
选项,而是进行下一个。另外,正则正则必须用引号包裹(单个或double(。
希望这对某人有帮助:(
这样的使用-x选项可能更容易: -x。* -x。*/