如何用单条AWS CLI命令删除指定范围文件夹下的对象?
批量删除S3中指定范围文件夹的对象
针对你需要删除WO000001到WO009999范围内所有文件夹对象的需求,有两种单条命令实现方式:
方法一:精确匹配数字范围(推荐)
利用shell的seq命令生成带前导零的数字序列,循环执行删除操作,能严格控制范围避免误删:
for i in $(seq -w 1 9999); do aws s3 rm "s3://<bucket-name>/WO$i/" --recursive --profile <profile-name>; done
seq -w:生成固定6位带前导零的数字(如1转为000001,9999转为009999)- 替换
<bucket-name>和<profile-name>为你的实际桶名和AWS配置文件
方法二:通配符匹配(简洁但需注意范围)
如果确认桶内没有其他WO00开头的无关文件夹,可以用通配符批量匹配:
aws s3 rm "s3://<bucket-name>/" --recursive --include "WO00????/*" --exclude "*" --profile <profile-name>
WO00????/*:匹配WO00后接任意4位数字的文件夹下所有对象--exclude "*":确保仅删除符合--include规则的内容,避免误删其他文件
注意事项
- 执行删除前建议先用
aws s3 ls替换aws s3 rm测试,确认目标内容正确 - 批量删除操作不可逆,务必谨慎执行
内容的提问来源于stack exchange,提问作者Eriqa Vague
相关产品推荐
相关产品推荐

