ワイルドカードを使用してAWS CLIでファイルのグループを「cp」する方法


109

私が使用してトラブルを抱えている*特定のバケットからのファイルのサブセットを選択するために、AWS CLIで。

*このようなパスに追加しても機能しないようです

aws s3 cp s3://data/2016-08* .

回答:


180

現在のディレクトリにAWSバケットから複数のファイルをダウンロードするには、使用することができますrecursiveexcludeと、includeこのようなフラグを:

aws s3 cp s3://data/ . --recursive --exclude "*" --include "2016-08*"

これらのフィルターの使用方法の詳細については、http//docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filtersをご覧ください。


24
これは--exclude "*"タイプミスではないことを指摘しておきます。追加しない場合、includeは何にでも一致します。ドキュメントに従って:デフォルトでは、すべてのファイルが含まれていることに注意してください。つまり、-includeフィルターのみを指定しても、転送されるファイルは変更されません。--includeは、-excludeフィルターから除外されたファイルのみを再組み込みします。特定の拡張子を持つファイルのみをアップロードする場合は、最初にすべてのファイルを除外してから、特定の拡張子を持つファイルを再度含める必要があります。
pyb

7
除外と包含の順序にも注意してください。
keiki

3
また、使用することができsync、デフォルトでは再帰的である、同様の効果のために:aws s3 sync s3://data/ . --exclude "*" --include "2016-08*"
異名同音

54

パラメータの順序が重要

excludeとincludeは特定の順序で使用する必要があります。最初に除外してからincludeする必要があります。それの逆は成功しません。

aws s3 cp s3://data/ . --recursive  --include "2016-08*" --exclude "*" 

この場合、パラメータの順序が重要になるため、これは失敗します。インクルードは*によって除外されます

aws s3 cp s3://data/ . --recursive --exclude "*" --include "2016-08*"`

すべてを除外しましたが、後で特定のディレクトリを含めたため、これは機能します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.