在LFTP Mirror命令中排除所有用dot盯着的东西



我正在使用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。*/

相关内容

  • 没有找到相关文章

最新更新