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

如何通过Azure CLI在Azure DevOps流水线删除存储容器指定文件夹内容?

解决Azure CLI删除存储容器指定文件夹内容的问题

问题原因

你使用的--pattern '*[/3.0.0/]*'匹配逻辑错误,该模式会匹配所有路径中包含/3.0.0/片段的blob,再加上shell对通配符的解析干扰,最终导致误删容器内所有文件。

正确解决方案

要精准删除Documents/3.0.0/下的所有子文件夹和文件,推荐以下两种可靠方式:

方式一:使用前缀匹配(最安全)

利用--prefix参数指定目标路径前缀,这是Azure CLI批量删除blob最稳妥的方式,不会出现通配符匹配偏差:

az storage blob delete-batch --account-name $account --source $container --prefix "Documents/3.0.0/" --connection-string $conn-str

方式二:修正glob模式匹配

如果坚持使用--pattern,需要使用符合Azure存储glob规则的模式,匹配Documents/3.0.0/下的所有层级内容:

az storage blob delete-batch --account-name $account --source $container --pattern "Documents/3.0.0/**" --connection-string $conn-str

其中**表示跨层级匹配该路径下的所有文件和子目录。

原命令错误细节

原命令的问题在于:

  1. 开头的*会匹配任意前缀,若存在其他路径包含/3.0.0/片段(哪怕当前结构没有,逻辑上仍有风险),都会被误匹配;
  2. Azure存储的glob模式中,*仅匹配单个路径段的任意字符,**才支持跨层级递归匹配,原模式未限定起始路径,加上shell对[]的解析干扰,最终导致匹配范围失控。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 18:57:17