我正在使用aws cli使用以下命令(documentation)列出s3存储桶中的文件:

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命令无法实现这一点,但可以轻松地将其传输到另一个命令,以go 除不需要的部分.您还需要删除--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相关问答推荐

创建守护进程时打开0,1,2描述符

在不影响ROS2安装的情况下更新Ubuntu Linux中的CMake

无法分析nasm中的单词

AWK:按第一列匹配两个文件不起作用

如何在不进行轮询且不吃掉其他人子进程的退出代码的情况下等待一组子进程(并且只有它们)?

使用 AWK 过滤 Linux 输出

有必要注意非错误提示吗?好像没有找到包裹‘***’?

为什么 printf 仍然可以使用低于 XMM 寄存器中 FP args 数量的 RAX?

如何在 Linux 命令行上解析 CSV 文件?

无法创建Java虚拟机

如何克隆 OpenLDAP 数据库

`是什么意思! -d` 在这个 Bash 命令中?

如何对 /dev/random 或 /dev/urandom 进行 base64 编码?

GNU Octave 方法对矩阵中的每个项目进行操作.octave arrayfun(...)示例

在 Linux 上忽略 glob() 中的大小写

`cd //` 中的双斜杠 // 在 Linux 中是什么意思?

我可以使用 awk 将所有小写字母转换为大写吗?

如何使用cp从不同目录复制多个文件?

具有所有内核的 Gzip

在 Docker 容器中运行的 JVM 的驻留集大小 (RSS) 和 Java 总提交内存 (NMT) 之间的差异