firebase gustil cp 命令输出,不能存储在 txt 文件中。如何获得一代新版本?

Posted

技术标签:

【中文标题】firebase gustil cp 命令输出,不能存储在 txt 文件中。如何获得一代新版本?【英文标题】:firebase gustil cp command output, can not store in txt file. how get generation of new version? 【发布时间】:2021-08-24 15:03:21 【问题描述】:

我需要将“gsutil cp”命令输出到 output.txt 文件。 使用“>”符号它只是在终端上打印,而不是写入 output.txt

    我该怎么做?由于执行需要几秒钟,我不知道如何处理异步命令输出。

    如果有人知道,“cp”成功后如何生成文件? 我知道如何在终端上显示(在 cp 命令中使用 -v 选项)。但我只需要生成,因为它在输出中打印了这么多行。

【问题讨论】:

我在 Stack Overflow 中找到了我认为的相关案例,也许它对您的案例有用。 (***.com/questions/16823714/pipe-gsutil-output-to-file)。希望对你有帮助。 谢谢@Vicky。我会考虑给定链接的解决方案。我需要从链接中提取大小和生成。我发现的另一种方法是使用“gustil du object-link”命令。它会给我输出为“size_in_byte object-link#generation”。然后我必须使用“cut”命令来提取“size_in_byte”和“#generation”。 很抱歉,但“-L”选项给出的目标 URL 没有新一代编号。我可以从输出中获取文件大小。 我认为我已经找到了一个可能的解释,说明为什么“-L”不能按预期工作,在这个相关的case 中,据说“-L”命令只能保存您正在使用的命令的目的,所以它可能没有保存正确的数据,因为使用的命令的输出没有得到您需要的数据。请检查一下,也许它可以帮助您找到获得所需内容的方法。 【参考方案1】:

如文档所述 [1],gsutil cp 命令允许您在本地文件系统和云之间、云内部以及云存储提供商之间复制数据。

如果要将 gsutil cp 命令的输出保存到文本文件,这里有一个示例:

gsutil cp your-file-here gs://your-bucket-here 2> result.txt

使用名为 hello.txt 的文件和我的一个存储桶,result.txt 的内容是

Copying file://hello.txt [Content-Type=text/plain]...
/ [1 files][   92.0 B/   92.0 B]
Operation completed over 1 objects/92.0 B.

[1] - https://cloud.google.com/storage/docs/gsutil/commands/cp

【讨论】:

正确获取文件中的输出。但是很难从这个输出中得到生成和大小。它以 MB 为单位提供文件大小输出,我需要以字节为单位。我必须编写以字节为单位的生成和文件大小的脚本

以上是关于firebase gustil cp 命令输出,不能存储在 txt 文件中。如何获得一代新版本?的主要内容,如果未能解决你的问题,请参考以下文章

linuxLinux cp命令拷贝 不覆盖原有的文件

命令小区分:标准输入输出,cp与dd

linux如何把上一次命令输出的结果复制下来??因为一屏显示不完,有些都看不见了

ubuntu常用命令

linux的复制命令

Docker命令之四:docker cp