51

是否可以选择计算存储桶文件夹中的文件数量?

喜欢:

gsutil ls -count -recursive gs://bucket/folder

Result:   666 files

我只想将文件总数与服务器上的同步文件夹进行比较。

我在手册中没有得到它。

4

6 回答 6

94

带有选项(长列表)和(递归列表)的 gsutil ls 命令将递归地列出整个存储桶,然后在最后生成所有对象(包括文件和目录)的总数:-l-R

$ 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 命令。这使得计数变得更加容易:

$ gsutil du gs://pub | wc -l
232
于 2013-09-24T16:20:59.253 回答
9

你想gsutil ls -count -recursive进去gs://bucket/folder吗?好吧; gsutil ls gs://bucket/folder/**将仅列出文件路径的完整 url,gs://bucket/folder而没有页脚或以冒号结尾的行。管道wc -l将为您提供结果的行数。

gsutil ls gs://bucket/folder/** | wc -l

于 2017-05-24T01:27:16.270 回答
3

如果您可以选择不使用 gsutil,最简单的方法是在 Google Cloud Platform 上进行检查。转到监控 > 指标资源管理器:

  • 资源类型:GCS 桶
  • 指标:对象计数然后,在下表中,您为每个存储桶提供了它包含的文档数。
于 2021-11-17T09:41:47.720 回答
2
gsutil ls -lR gs://Floder1/Folder2/Folder3/** |tail -n 1
于 2020-02-11T11:17:21.363 回答
2

要点展示了如何遍历所有 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 中运行。

于 2021-07-28T09:32:41.253 回答
1

作为一个桶里有 450 万个对象的人,我用gsutil du gs://bucket/folder | wc -l了大约 24 分钟

于 2021-10-25T23:54:13.003 回答