【发布时间】:2013-09-29 22:49:01
【问题描述】:
是否有计算存储桶文件夹中文件数量的选项?
喜欢:
gsutil ls -count -recursive gs://bucket/folder
Result: 666 files
我只是想要一个文件总数来比较 数量到我服务器上的同步文件夹。
我没有在手册中得到它。
【问题讨论】:
标签: google-cloud-storage gsutil
是否有计算存储桶文件夹中文件数量的选项?
喜欢:
gsutil ls -count -recursive gs://bucket/folder
Result: 666 files
我只是想要一个文件总数来比较 数量到我服务器上的同步文件夹。
我没有在手册中得到它。
【问题讨论】:
标签: google-cloud-storage gsutil
如果您可以选择不使用 gsutil,最简单的方法是在 Google Cloud Platform 上进行检查。 转到监控 > 指标资源管理器:
【讨论】:
作为一个在存储桶中有 450 万个对象的人,我使用了 gsutil du gs://bucket/folder | wc -l,花了大约 24 分钟
【讨论】:
此gist 展示了如何遍历所有 Cloud Storage 存储分区并列出每个存储分区中的对象数量。点赞@vinoaj
for VARIABLE in $(gsutil ls)
do
echo $(gsutil du $VARIABLE | grep -v /$ | wc -l) $VARIABLE
done
要过滤存储桶,请添加 grep,例如 for VARIABLE in $(gsutil ls | grep "^gs://bucketname")
在控制台中,您可以单击右上角的激活 Cloud Shell 并将其粘贴以获取结果。如果您将命令保存为 bash 脚本,则运行 chmod u+x program_name 以便脚本可以在 GCP Cloud Shell 中运行。
【讨论】:
gsutil ls -lR gs://Floder1/Folder2/Folder3/** |tail -n 1
【讨论】:
带有选项-l(长列表)和-R(递归列表)的gsutil ls command 将递归地列出整个存储桶,然后在最后生成所有对象(包括文件和目录)的总数:
$ gsutil ls -lR gs://pub
104413 2011-04-03T20:58:02Z gs://pub/SomeOfTheTeam.jpg
172 2012-06-18T21:51:01Z gs://pub/cloud_storage_storage_schema_v0.json
1379 2012-06-18T21:51:01Z gs://pub/cloud_storage_usage_schema_v0.json
1767691 2013-09-18T07:57:42Z gs://pub/gsutil.tar.gz
2445111 2013-09-18T07:57:44Z gs://pub/gsutil.zip
1136 2012-07-19T16:01:05Z gs://pub/gsutil_2.0.ReleaseNotes.txt
... <snipped> ...
gs://pub/apt/pool/main/p/python-socksipy-branch/:
10372 2013-06-10T22:52:58Z gs://pub/apt/pool/main/p/python-socksipy-branch/python-socksipy-branch_1.01_all.deb
gs://pub/shakespeare/:
84 2010-05-07T23:36:25Z gs://pub/shakespeare/rose.txt
TOTAL: 144 objects, 102723169 bytes (97.96 MB)
如果您真的只想要总数,可以将输出通过管道传送到tail 命令:
$ gsutil ls -lR gs://pub | tail -n 1
TOTAL: 144 objects, 102723169 bytes (97.96 MB)
更新
gsutil 现在有一个du command。这使得计数变得更加容易:
$ gsutil du gs://pub | wc -l
232
【讨论】:
gsutil ls -lworks 在 Windows 中有一种方法(没有 tail 或 ws)来获取摘要而无需列出整个存储桶内容
您想将gsutil ls -count -recursive 加入gs://bucket/folder 吗?
好的; gsutil ls gs://bucket/folder/** 将仅列出 gs://bucket/folder 下文件路径的完整 url,不包括页脚或以冒号结尾的行。将其传送到 wc -l 将为您提供结果的行数。
gsutil ls gs://bucket/folder/** | wc -l
【讨论】:
** 而不仅仅是*?
/folder/**/*.js 会在文件夹之后的任何目录深度下找到所有 js 文件(文件夹本身除外),而/folder/*/*.js 仅适用于文件夹中目录中的 js 文件。