web-dev-qa-db-ja.com

gsutilを使用してバケットフォルダ内のファイル数をカウントする方法

バケットフォルダ内のファイル数をカウントするオプションはありますか?

お気に入り:

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

Result:   666 files

合計ファイル数をサーバー上の同期フォルダーと比較するだけです。

説明書には載っていません。

27
user2811846

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
49
jterrace

gsutil ls -count -recursivegs://bucket/folderしたいですか?よし、 gsutil ls gs://bucket/folder/**は、フッターやコロンで終わる行なしで、gs://bucket/folderの下のファイルへのパスの完全なURLのみをリストします。これをwc -lにパイプすると、結果の行数がわかります。

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

3
dlamblin
gsutil ls -lR gs://Floder1/Folder2/Folder3/** |tail -n 1
0
Dhiraj