2017-02-23 107 views
1

我有诸如路径的S3桶:AWS CLI S3 - 移动在桶中的所有文件到一个目录

s3://mybucket/data/2017-01-01/raw/file_file1.txt 
s3://mybucket/data/2017-01-01/raw/file_file2.txt 
s3://mybucket/data/2017-01-01/filtered/file_file3.txt 
s3://mybucket/data/2017-02-01/edited/file_file4.txt 

有没有将所有文件在目录的结束方式(他们全部以file_开头)为:

s3://mybucket/data/ 

用单个命令?

回答

0

我想你只需要做

aws s3 cp s3://mybucket/data/ s3://mybucket/data/ --recursive --include "file_file*.txt" 

复制它

+0

谢谢你的回应,而是给出了一个错误。我不认为在路径名中支持通配符 – Dlob

+0

是的,我意识到,在我保存后,这应该更有效 –

1

递归复制S3对象复制到另一个桶

当参数--recursive全部通过,下面的cp命令递归副本通过使用--exclude参数,将指定存储桶下的对象转移到另一个存储桶,同时排除某些对象。在这个例子中,斗mybucket有对象test1.txtanother/test1.txt

aws s3 cp s3://mybucket/ s3://mybucket2/ --recursive --exclude "mybucket/another/*" 

输出:

copy: s3://mybucket/test1.txt to s3://mybucket2/test1.txt 

您可以结合--exclude--include选项只复制与模式匹配的对象,排除其他所有:

aws s3 cp s3://mybucket/logs/ s3://mybucket2/logs/ --recursive --exclude "*" --include "*.log" 

输出:

copy: s3://mybucket/test/test.log to s3://mybucket2/test/test.log 
copy: s3://mybucket/test3.log to s3://mybucket2/test3.log 

你的情况,这将是:

aws s3 cp s3://mybucket/data/ s3://mybucket/data/ --recursive --exclude "*" --include "file_*.txt" 

来源:AWS CLI cp command documentation

相关问题