如何使用通配符通过 AWS CLI `cp` 一组文件
How can I use wildcards to `cp` a group of files with the AWS CLI
我在 AWS CLI 中使用 *
来 select 来自特定存储桶的文件子集时遇到问题。
像这样将*
添加到路径似乎不起作用
aws s3 cp s3://data/2016-08* .
要将多个文件从 aws 存储桶下载到当前目录,您可以使用 recursive
、exclude
和 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
参数顺序很重要
exclude和include要有一定的使用顺序,先exclude再include。反之亦然。
aws s3 cp s3://data/ . --recursive --include "2016-08*" --exclude "*"
这将失败,因为在这种情况下参数的顺序很重要。包含被 *
排除
aws s3 cp s3://data/ . --recursive --exclude "*" --include "2016-08*"`
这个会起作用,因为我们排除了所有内容,但后来我们包含了特定目录。
好吧,我不得不说这个例子是错误的,应该更正如下:
aws s3 cp . s3://data/ --recursive --exclude "*" --include "2006-08*" --exclude "*/*"
.
需要紧跟在 cp
之后。最后的 --exclude
是为了确保从 --recursive
拾取的任何子目录中都没有拾取任何东西(错误地学习了那个......)
这对任何在到达这里时遇到这个问题的人都有效。
如果在使用 ‘ * ’
时出现错误,您还可以使用递归、包含和排除标志,例如
aws s3 cp s3://myfiles/ . --recursive --exclude "*" --include "file*"
我在 AWS CLI 中使用 *
来 select 来自特定存储桶的文件子集时遇到问题。
像这样将*
添加到路径似乎不起作用
aws s3 cp s3://data/2016-08* .
要将多个文件从 aws 存储桶下载到当前目录,您可以使用 recursive
、exclude
和 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
参数顺序很重要
exclude和include要有一定的使用顺序,先exclude再include。反之亦然。
aws s3 cp s3://data/ . --recursive --include "2016-08*" --exclude "*"
这将失败,因为在这种情况下参数的顺序很重要。包含被 *
排除aws s3 cp s3://data/ . --recursive --exclude "*" --include "2016-08*"`
这个会起作用,因为我们排除了所有内容,但后来我们包含了特定目录。
好吧,我不得不说这个例子是错误的,应该更正如下:
aws s3 cp . s3://data/ --recursive --exclude "*" --include "2006-08*" --exclude "*/*"
.
需要紧跟在 cp
之后。最后的 --exclude
是为了确保从 --recursive
拾取的任何子目录中都没有拾取任何东西(错误地学习了那个......)
这对任何在到达这里时遇到这个问题的人都有效。
如果在使用 ‘ * ’
时出现错误,您还可以使用递归、包含和排除标志,例如
aws s3 cp s3://myfiles/ . --recursive --exclude "*" --include "file*"