我使用aws cli使用以下命令列出s3存储桶中的文件(documentation):
aws s3 ls s3://mybucket --recursive --human-readable --summarize
这个命令给我以下输出:
2013-09-02 21:37:53 10 Bytes a.txt
2013-09-02 21:37:53 2.9 MiB foo.zip
2013-09-02 21:32:57 23 Bytes foo/bar/.baz/a
2013-09-02 21:32:58 41 Bytes foo/bar/.baz/b
2013-09-02 21:32:57 281 Bytes foo/bar/.baz/c
2013-09-02 21:32:57 73 Bytes foo/bar/.baz/d
2013-09-02 21:32:57 452 Bytes foo/bar/.baz/e
2013-09-02 21:32:57 896 Bytes foo/bar/.baz/hooks/bar
2013-09-02 21:32:57 189 Bytes foo/bar/.baz/hooks/foo
2013-09-02 21:32:57 398 Bytes z.txt
Total Objects: 10
Total Size: 2.9 MiB
但是,这是我想要的输出:
a.txt
foo.zip
foo/bar/.baz/a
foo/bar/.baz/b
foo/bar/.baz/c
foo/bar/.baz/d
foo/bar/.baz/e
foo/bar/.baz/hooks/bar
foo/bar/.baz/hooks/foo
z.txt
如何省略日期,时间和文件大小以仅显示文件列表?
解决方法:
您不能仅使用aws命令执行此操作,但您可以轻松地将其传递给另一个命令以去除您不想要的部分.您还需要删除–human-readable标志以使输出更易于使用,并使用–summarize标志删除末尾的摘要数据.
尝试这个:
aws s3 ls s3://mybucket --recursive | awk '{print $4}'
编辑:将文件名中的空格考虑在内:
aws s3 ls s3://mybucket --recursive | awk '{$1=$2=$3=""; print $0}' | sed 's/^[ \t]*//'
标签:linux,amazon-web-services,amazon-s3,aws-cli,ls
来源: https://codeday.me/bug/20191006/1858964.html