如何解决AWS CLI在s3存储桶中搜索文件并复制到其他文件夹
我正在尝试仅将文件从AWS S3 Folder_Test1
文件夹复制到同一存储桶中的Folder_Test2
文件夹。
Folder_Test1:
T1_abc_june21.csv
T1_abc_june25.csv
T2_abc_june29.csv
T1_abc_def_june21.csv
T2_abc_def_june25.csv
T3_abc_def_june29.csv
T3_xyz_june29.csv
我必须过滤仅包含abc
的文件名,并排除文件abc_def
:
我尝试过:
aws s3 cp s3://$bucket/Folder_Test1/ s3://$bucket/Folder_Test2/ --exclude "*abc_def*" --include "*abc*"
但它不起作用。
解决方法
来自s3 — AWS CLI 1.18.123 Command Reference:
任何数量的这些参数都可以传递给命令。您可以通过多次提供--exclude或--include参数来实现此目的,例如--include“ .txt” --include“ .png”。如果有多个过滤器,则规则是命令后面出现的过滤器优先于命令前面出现的过滤器。
因此,问题是您的命令被排除 *abc_def*
,但随后被包括 *abc*
,从而添加了*abc_def*
文件。
您应该可以通过交换订单来解决它:
aws s3 cp s3://$bucket/Folder_Test1/ s3://$bucket/Folder_Test2/ --include "*abc*" --exclude "*abc_def*"
如果它正在复制您不需要的其他文件(例如xyz
),则添加一个exclude
:
aws s3 cp s3://$bucket/Folder_Test1/ s3://$bucket/Folder_Test2/ --exclude "*" --include "*abc*" --exclude "*abc_def*"
这将按顺序应用这些规则 :
- 排除一切
- 添加
*abc*
- 排除
*abc_def*
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。