29

如何使用类似于find .在 Unix 上使用的 AWS CLI 递归列出存储桶的所有内容。

aws s3 ls s3://MyBucket --recursive抱怨未知选项。

http://docs.aws.amazon.com/cli/latest/reference/s3/index.html#directory-and-s3-prefix-operations声称这--recursive是一个有效参数。

4

5 回答 5

50

aws s3 ls s3://MyBucket --recursive对我来说很好。

尝试更新您的 AWS CLI。我的版本是 aws-cli/1.6.2

aws --version

于 2014-11-19T22:36:37.537 回答
2

对于最新的AWS CLI版本,--recursive支持选项。

您可以使用以下命令递归地列出名为MyBucket的存储桶下的所有文件:

aws s3 ls s3://MyBucket/ --recursive

您可以使用以下命令递归列出存储桶中名为MyFolder的文件夹下的所有文件:

aws s3 ls s3://MyBucket/MyFolder/ --recursive

有关更多信息,请参阅:https ://docs.aws.amazon.com/cli/latest/reference/s3/ls.html

于 2021-08-23T14:32:56.180 回答
1

您不能通过以下方式递归列出存储桶的所有内容 -

aws s3 ls s3://MyBucket

要列出文件夹中的对象,您需要执行命令为 -

aws s3 ls s3://MyBucket/MyFolder/

上面的命令列出了位于名为MyFolder的文件夹中的对象。

要从 Amazon S3 的此类逻辑层次结构中获取对象列表,您需要在GET 操作中指定对象的完整键名。

--recursive命令对指定目录或前缀下的所有文件或对象执行。

谢谢

于 2013-12-20T05:44:37.307 回答
1

我无法正确解释您引用的链接:http: //docs.aws.amazon.com/cli/latest/reference/s3/index.html#directory-and-s3-prefix-operations

但是,我能够使--recursive选项与此链接相关: http: //docs.aws.amazon.com/cli/latest/reference/s3/index.html#single-local-file-and-s3-object -操作

根据此链接,cpmv支持rm选项--recursive

您正在尝试的是ls.

我尝试使用和cp选项,它工作正常。rm--recursive

于 2013-12-20T04:23:25.083 回答
0

下面一行 bash 脚本能够执行:- 如何递归列出所有 S3 存储桶及其对象,列出存储桶名称和计数对象。

/usr/bin/sudo /usr/local/bin/aws s3 ls |awk '{print $NF}'| while read l;do echo -e "#######---$l objects---##########\n\n";/usr/bin/sudo /usr/local/bin/aws s3 ls $l|nl;done
于 2021-10-26T06:27:55.283 回答