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

使用Azcopy删除目录内文件但保留父目录的方法咨询

解决Azcopy删除Blob目录文件时保留父目录的问题

要删除test_folder2内的所有文件但保留该虚拟目录,需结合Azure Blob存储的特性调整命令:

问题原因

Azure Blob存储中的“文件夹”是虚拟目录,并非真实存在的实体,仅由Blob路径中的前缀标识。当该前缀下的所有Blob被删除后,虚拟目录会自动从存储容器的视图中消失,这属于Blob存储的默认行为,而非Azcopy的操作问题。

你之前使用/*的命令会删除test_folder2下的所有Blob,导致虚拟目录因无内容而消失;而设置--recursive=false报错,是因为非空目录必须开启递归才能删除其中的内容。

解决方案

1. 删除所有文件(含子目录内容),手动保留虚拟目录

首先执行删除命令清理所有文件:

azcopy rm "https://[account].blob.core.windows.net/[container]/test_folder1/test_folder2?[SAS]" --recursive=true --include-pattern="*"

命令执行后,test_folder2会因无Blob而“消失”,此时需上传一个空的占位Blob来保留虚拟目录:

# 先在本地创建一个空文件,比如命名为empty.txt
azcopy copy "empty.txt" "https://[account].blob.core.windows.net/[container]/test_folder1/test_folder2/.keep?[SAS]"

上传.keep空文件后,test_folder2前缀存在,虚拟目录会重新显示在容器中。

2. 仅删除当前目录下的文件(不递归删除子目录)

若只需删除test_folder2根目录下的文件,不涉及子目录,可使用--exclude-pattern="*/"排除子目录:

azcopy rm "https://[account].blob.core.windows.net/[container]/test_folder1/test_folder2?[SAS]" --recursive=true --include-pattern="*" --exclude-pattern="*/"

同样,若删除后需保留虚拟目录,仍需上传占位Blob。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:05:15