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 文件中。如何获得一代新版本?的主要内容,如果未能解决你的问题,请参考以下文章