Google cloud storage 如何使用gsutil计算bucket文件夹中的文件数

Google cloud storage 如何使用gsutil计算bucket文件夹中的文件数,google-cloud-storage,Google Cloud Storage,是否有一个选项来计算bucket文件夹中的文件数 比如: gsutil ls -count -recursive gs://bucket/folder Result: 666 files 我只需要一个文件总数来比较 金额到我的服务器上的同步文件夹 我在手册中没有看到它。带有选项-l(长列表)和-R(递归列表)的gsutil将递归地列出整个bucket,然后在末尾生成所有对象(包括文件和目录)的总数: $ gsutil ls -lR gs://pub 104413 2011-04

是否有一个选项来计算bucket文件夹中的文件数

比如:

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

Result:   666 files
我只需要一个文件总数来比较 金额到我的服务器上的同步文件夹

我在手册中没有看到它。

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

$ 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)
更新

gsutil现在有一个。这使得计数变得更加容易:

$ gsutil du gs://pub | wc -l
232

您想在
gs://bucket/folder
gsutil ls-count-recursive
? 好,
gsutil ls gs://bucket/folder/**
将只列出
gs://bucket/folder
下文件路径的完整URL,不带页脚或以冒号结尾的行。将其输送到
wc-l
将为您提供结果的行计数

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


太好了,谢谢。。。对于400万个文件来说,速度有点慢。。此操作是1调用还是计为桶元素数。。。可能会变得昂贵…-)它在bucket上列出一个对象,并在结果中翻页,我认为每次1000个,因此它将进行N/1000调用,其中N是您拥有的对象数。这是定价页面的a级操作。您好,刚刚登录表示感谢。我试图使用find,但它不受支持,所以在搜索其他选项时,我偶然发现了您的答案。这是一个很大的帮助。gsutil解决方案在gsutil v 4.15、@jterrace中非常有效,但前提是您列出的bucket/path中没有“子目录”。如果有子目录,du将汇总该目录下文件的大小,并打印一行到该目录的stdout(使文件计数不正确)。很抱歉对一个老问题的更新太晚。虽然
gsutil ls-l
有效,但Windows(无尾或ws)中有没有一种方法可以在不需要列出整个存储桶内容的情况下获得摘要?为什么使用
**
不仅仅是
*
?@northtree,我认为在这种情况下它可能是等效的,但是**可以同时用于多个级别,因此,我认为
/folder/***/.js
会在文件夹之后的任何目录深度下找到所有js文件(文件夹本身除外),而
/folder/***/.js
只适用于文件夹中某个目录下的js文件。
$ gsutil du gs://pub | wc -l
232
gsutil ls -lR gs://Floder1/Folder2/Folder3/** |tail -n 1