2017-02-23 20 views
1

1つのディレクトリにバケット内のすべてのファイルを移動:AWS CLI S3 - 私のようなパスで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

再帰的にすべて、パラメータ--recursiveと、次のcpのコマンドを再帰的にコピーを渡された別のバケット

にS3オブジェクトをコピーします指定されたバケット下のオブジェクトを別のバケットに移動し、--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" 

出力:

あなたのケースでは3210
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

関連する問題