2013-09-24 7 views
7

Czy istnieje możliwość policzenia liczby plików w folderach-folderach?Jak liczyć numer pliku w folderze z wiadrem z gsutil

odczuwalna:

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

Result: 666 files 

Właśnie Chcesz łączna liczba plików do porównania kwotę do synchronizacji-folderu na moim serwerze.

Nie rozumiem tego w instrukcji obsługi.

Odpowiedz

19

gsutil ls command z opcji -l (długi listing) i -R (rekurencyjnej szczegóły) pokaże całą wiadro rekursywnie, a następnie uzyskać całkowitą liczbę wszystkich obiektów, zarówno plików i katalogów na koniec:

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

Jeśli naprawdę chcą tylko łącznie, można przelać wyjście komendy tail:

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

UPDATE

gsutil ma teraz du command. To sprawia, że ​​nawet łatwiej dostać Count:

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

Wielki, dzięki ... tylko Liddle nieco powolny przez 4 mio plików .. Czy ta operacja 1 Zadzwoń lub traktowane jako liczby elementów kubełkowych? ... może stać się drogi ... :-) – user2811846

+0

Wykonuje listę obiektów na wiadrze, a strony wyników, myślę, że 1000 na raz, więc wykona N/1000 połączeń, gdzie N to liczba obiektów ty masz. Jest to operacja klasy A na stronie cenowej. – jterrace

+0

Witam właśnie zalogowałem się, aby podziękować, pomogło to. Próbowałem użyć find, ale nie było to obsługiwane, więc gdy szukałem alternatywy natknąłem się na twoją odpowiedź. To była wielka pomoc. –

0

chcesz gsutil ls -count -recursive w gs://bucket/folder? W porządku; gsutil ls gs://bucket/folder/** wyświetli listę pełnych adresów URL ścieżek do plików pod numerem gs://bucket/folder bez stopki lub linii kończących się dwukropkiem. Rurociągi do wc -l dadzą liczbę liniową wyniku.

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