AWS CLI 2.7.24使用--include/--exclude参数报错:未知选项
解决AWS CLI递归列出S3特定扩展名文件的问题
问题根源
aws s3 ls命令不支持--exclude和--include参数,这两个选项仅适用于aws s3 cp、aws s3 sync等同步/拷贝类命令,因此添加后会触发「未知选项」的错误。
可行解决思路
使用
aws s3api list-objects-v2(推荐,更高效)
该命令支持通过JMESPath查询语法直接过滤对象,无需后续文本处理,适合大规模存储场景:# 仅列出符合条件的文件路径 aws s3api list-objects-v2 --bucket myfiles --prefix folders/ --query "Contents[?ends_with(Key, '.txt')].Key" # 列出包含大小、最后修改时间的详细信息 aws s3api list-objects-v2 --bucket myfiles --prefix folders/ --query "Contents[?ends_with(Key, '.txt')].{文件路径: Key, 文件大小: Size, 最后修改: LastModified}"说明:
--bucket指定S3桶名,--prefix对应原路径s3://myfiles/folders/中的前缀部分,--query通过ends_with函数筛选后缀为.txt的对象。结合递归列表与文本过滤工具
先通过aws s3 ls --recursive列出所有内容,再用系统自带的文本过滤工具筛选结果:- Linux/macOS(使用grep):
aws s3 ls --recursive s3://myfiles/folders/ | grep "\.txt$" - Windows命令提示符(使用findstr):
aws s3 ls --recursive s3://myfiles/folders/ | findstr /E ".txt"
说明:
grep "\.txt$"匹配行尾为.txt的内容,Windows下findstr /E表示匹配行尾。- Linux/macOS(使用grep):
检查AWS CLI安装方式
AWS CLI v2官方不推荐通过pip安装(pip主要用于v1版本),若你用pip install -U awscli升级,可能导致版本或参数支持异常。建议:- 执行
aws --version确认版本是否为aws-cli/2.7.24; - 若为pip安装的v2,先卸载:
pip uninstall awscli; - 按照AWS官方对应系统的安装包重新安装v2。
- 执行
内容的提问来源于stack exchange,提问作者Milos
相关产品推荐
相关产品推荐

