我如何使用通配符“cp”一组文件与AWS CLI

我在AWS CLI中使用*从某个桶中选择文件的子集时遇到了麻烦。

像这样将*添加到路径中似乎不起作用

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

120644 次浏览
要从aws桶下载多个文件到当前目录,可以使用recursiveexcludeinclude标志。 参数的顺序很重要

示例命令:

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

参数的顺序很重要

排除和包括应该按照特定的顺序使用,我们必须先排除,然后再包括。反之则不会成功。

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

这将失败,因为在这种情况下参数的顺序很重要。include被*排除

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*"