【问题标题】:LFTP wildcard source folderLFTP 通配符源文件夹
【发布时间】:2018-03-11 10:44:45
【问题描述】:

我正在尝试在我的 GitLab 持续集成设置中使用 LFTP,以便可以将 JSON 文件镜像到我的目的地。但是,我只想使用通配符镜像一组文件夹,但我似乎无法正常工作。

我在 LFTP 中尝试了这个镜像命令配置,但这会导致“没有这样的文件或目录”错误。我假设我以某种方式解析通配符错误。

我尝试了什么:lftp -c "set sftp:auto-confirm true; open sftp://$DEVELOPMENT_DEPLOY_USER:$DEVELOPMENT_DEPLOY_PASSWORD@$DEVELOPMENT_DEPLOY_HOST:$DEVELOPMENT_DEPLOY_PORT; mirror -Rev ./somefolder_* $DEVELOPMENT_DESTINATION_FOLDER --ignore-time --parallel=10 --exclude .* --exclude .*/ --include ./*.json"

结果: /home/gitlab-runner/builds/82ffc821/0/somegroup/someproject/somefolder_*: No such file or directory

我可能遗漏了一些明显的东西。将不胜感激。

【问题讨论】:

  • 尝试在lftp 之后的命令中添加-v 以获得更详细的输出。
  • @StefanvanGastel 它没有在控制台中提供更多信息。错误仍然存​​在;没有这样的文件或目录。
  • 好的,尝试减少命令以获取此错误的原因。因此,在添加通配符之前先上传所有文件进行测试。
  • 该错误是由我尝试用于源文件夹的通配符引起的。我想做的是;我有两个文件夹:somefolder_one 和 somefolder_two。我试图通过在命令中将 somefolder_* 指定为通配符来镜像两者,但这似乎没有被正确解析,它试图加载不存在的确切文件夹 somefolder_*。它应该选择两个文件夹作为源并镜像这两个。

标签: continuous-integration gitlab-ci continuous-deployment gitlab-ci-runner lftp


【解决方案1】:

也许老了,但在人身上找到了:

可以多次指定包含和排除选项。它的意思是 那个文件或目录? 如果 tory 匹配一个 include 并且不匹配到 excludes 之后,它将被镜像 包括,或不匹配任何东西,第一个检查是排除。目录匹配 附加一个斜线。

所以首先它会执行“include”参数,最后“exclude”是“--exclude .* --exclude .*/”。在那个 glob 之后,没有文件数学可以镜像。使用“--verbose”检查lftp接触了哪些文件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多