2013-09-24 7 views
7

Gibt es eine Option, um die Anzahl der Dateien in Bucket-Ordnern zu zählen?Anzahl der Dateien in einem Bucket-Ordner mit gsutil zählen

Like:

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

Result: 666 files 

Ich möchte nur eine Gesamtzahl der Dateien, die Betrag an den Sync-Ordner auf meinem Server zu vergleichen.

Ich verstehe es nicht in der Anleitung.

Antwort

19

Die gsutil ls command mit Optionen -l (lange Liste) und -R (rekursive Auflistung) wird den gesamten Eimer rekursiv auflisten und dann eine Gesamtzahl aller Objekte erzeugen, die beiden Dateien und Verzeichnisse am Ende:

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

Wenn Sie wirklich nur die Gesamt, Sie können die Ausgabe an den tail Befehl:

$ gsutil ls -lR gs://pub | tail -n 1 
TOTAL: 144 objects, 102723169 bytes (97.96 MB) 

UPDATE

gsutil hat jetzt eine du command. Dies macht es noch einfacher, eine Zählung zu erhalten:

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

Großartig, danke ... nur ein liddle bisschen langsam für 4 Millionen Dateien .. Ist diese Bedienung 1 Rufen Sie an oder als Anzahl von Schaufelelementen gezählt? ... könnte teuer werden .. :-) – user2811846

+0

Es macht eine Objektliste auf den Eimer, und Seiten durch die Ergebnisse, ich denke 1000 auf einmal, so wird es N/1000 Anrufe machen, wobei N ist die Anzahl der Objekte du hast. Dies ist ein Vorgang der Klasse A auf der Preisseite. – jterrace

+0

Hallo gerade eingeloggt um Danke zu sagen das hat geholfen. Ich habe versucht, Find zu verwenden, aber das wurde nicht unterstützt, so dass bei der Suche nach einer Alternative stolperte auf Ihre Antwort. Es war eine große Hilfe. –

0

Sie wollen gsutil ls -count -recursive in gs://bucket/folder? In Ordnung; gsutil ls gs://bucket/folder/** wird nur vollständige URLs der Pfade zu den Dateien unter gs://bucket/folder ohne die Fußzeile oder die Zeilen, die in einem Doppelpunkt enden, auflisten. Wenn Sie das an wc -l leiten, erhalten Sie die Zeilenanzahl des Ergebnisses.

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

Verwandte Themen