Amazon web services AWS CLI搜索s3存储桶中的文件并复制到其他文件夹

Amazon web services AWS CLI搜索s3存储桶中的文件并复制到其他文件夹,amazon-web-services,amazon-s3,aws-cli,Amazon Web Services,Amazon S3,Aws Cli,我试图仅将文件从AWS S3文件夹_Test1文件夹复制到同一存储桶中的文件夹_Test2文件夹 文件夹_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\u def: 我试过: aws s3 cp s3:/

我试图仅将文件从AWS S3
文件夹_Test1
文件夹复制到同一存储桶中的
文件夹_Test2
文件夹

文件夹_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\u def

我试过:

aws s3 cp  s3://$bucket/Folder_Test1/ s3://$bucket/Folder_Test2/ --exclude "*abc_def*" --include "*abc*"
但它不起作用。

来自:

这些参数中的任意数量都可以传递给命令。可以通过多次提供--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*
来自:

这些参数中的任意数量都可以传递给命令。可以通过多次提供--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*