AWS CLI递归删除S3指定文件时exclude/include参数失效求助
解决S3批量删除指定子目录下特定文件的问题
AWS CLI的--exclude和--include参数遵循顺序优先的匹配规则,且默认会匹配所有文件(隐含--include "*"),同时如果目标文件在子目录下,必须用路径通配符才能准确匹配。你之前的命令失败原因在于:
- 未用通配符匹配子目录路径,导致include/exclude只匹配根目录下的文件
- 参数顺序错误,导致规则未按预期生效
正确命令
要批量删除所有子目录下的Intermediate_Part1_output.gpkg,执行以下命令(先通过--dryrun预览操作,确认无误后去掉该参数执行实际删除):
aws s3 rm s3://aitl-data-bucket-backup/4_8_2_processed/ --recursive --exclude "*" --include "*/Intermediate_Part1_output.gpkg" --dryrun
命令说明
--exclude "*":先排除所有文件,这是关键前提,确保后续的include规则只选中目标文件--include "*/Intermediate_Part1_output.gpkg":匹配任意一级子目录下的目标文件;如果存在多层嵌套子目录,改用**/Intermediate_Part1_output.gpkg(**/匹配任意层级的子目录)- 必须保证
--exclude "*"在--include之前,否则规则会失效
内容的提问来源于stack exchange,提问作者Swathi Venkatesh
相关产品推荐
相关产品推荐

