You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azcopy cp命令--include-regex参数未匹配文件问题排查

问题原因及解决办法

核心问题:混淆正则表达式与Shell通配符语法

你的正则*/testA/*无法匹配目标文件,主要有两个关键原因:

  1. Azcopy的--include-regex采用标准正则语法,而非Shell通配符:正则里单独的*属于无效语法(*在正则中表示匹配前一个字符零次或多次,而非任意字符),你误将其当成了Shell环境中的通配符使用。
  2. Blob路径匹配基准是容器根目录:目标文件在容器中的实际路径是data/testA/2/file.txt(无开头斜杠),你的正则没有正确匹配路径前缀部分。

解决方法

方法1:使用正确的正则表达式

将--include-regex的参数改为匹配任意包含testA/的Blob路径:

azcopy cp "$https://mystorageaccount.blob.core.windows.net/mycontainer?sv=xxxx&ss=xxxx&srt=xxxx&sp=xxxx&se=xxxx&st=xxxx&spr=xxxx&sig=xxxx" /var/data/ --include-regex ".*testA/.*"
  • .*:正则中表示匹配任意字符(包括路径分隔符/)零次或多次,能覆盖testA前面的任意层级路径。
  • 若要精确匹配testA作为独立文件夹(避免匹配类似datatestA/的路径),可改用:".*/testA/.*"

方法2:改用--include-path参数(更直观)

如果不需要正则的复杂匹配逻辑,推荐使用支持Shell通配符的--include-path参数,语法更符合你的预期:

azcopy cp "$https://mystorageaccount.blob.core.windows.net/mycontainer?sv=xxxx&ss=xxxx&srt=xxxx&sp=xxxx&se=xxxx&st=xxxx&spr=xxxx&sig=xxxx" /var/data/ --include-path "*/testA/*"

这里的*就是你原本预期的通配符,能匹配任意层级下的testA文件夹及其所有内容。

内容的提问来源于stack exchange,提问作者quincy783

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 11:17:12