ile plików jest w katalogach?

Potrzebujesz pomocy z C, C++, perl, python, itp.
sethiel
Junior Member
Posty: 762
Rejestracja: 28 stycznia 2008, 11:50
Lokalizacja: Wrocław

ile plików jest w katalogach?

Post autor: sethiel »

Mam jeden katalog o nazwie /Cache, w którym są katalogi, a w nich katalogi i tak dalej, a na końcu są pliki.
Przypuszczalnie plików jest koło półtora miliarda.
Czy jest jakaś funkcja, która poda mi ile ich jest - a dodatkowo nie będzie to trwało tyle co ich kopiowanie (kopiowanie tych plików potrwało około trzy tygodnie) z dysku USB na dysk RAID1 - jest ich koło 100GB.
Czubi
Posty: 6
Rejestracja: 26 listopada 2010, 15:38
Lokalizacja: Poznań

Post autor: Czubi »

Znalezione w sieci:

Kod: Zaznacz cały

find . -type f -maxdepth 10 | wc -l
Zmień doświadczalnie:

Kod: Zaznacz cały

-maxdepth 10
na 100 lub więcej, jeśli nie wiesz ile masz podkatalogów. Więcej informacji:

Kod: Zaznacz cały

find --help
i

Kod: Zaznacz cały

wc --help
sethiel
Junior Member
Posty: 762
Rejestracja: 28 stycznia 2008, 11:50
Lokalizacja: Wrocław

Post autor: sethiel »

Puszczę z rana i napiszę ile trwało liczenie.
Ciekawe czy więcej niż tydzień będzie liczyć :) .
Awatar użytkownika
panjandrum
Posty: 66
Rejestracja: 08 sierpnia 2009, 00:05

Post autor: panjandrum »

100GB w trzy tygodnie to strasznie słaby transfer, nawet jak na USB 1.0
sethiel
Junior Member
Posty: 762
Rejestracja: 28 stycznia 2008, 11:50
Lokalizacja: Wrocław

Post autor: sethiel »

Tak i nie, trochę to pokręcone:
USB->WindowsXP->współdzielenie plików - lan 100Mb/s - montowanie w debianie zasobów cifs-> kopia na dysk.
Ale też tak uważam, że wolno niemożliwie. Może dlatego, że właśnie miliard albo dwa miliardy małych plików to odczyt na USB (ntfs) ledwie zipie.
Awatar użytkownika
Redhead
Junior Member
Posty: 526
Rejestracja: 17 lipca 2007, 17:37

Post autor: Redhead »

sethiel pisze:Może dlatego, że właśnie miliard albo dwa miliardy małych plików to odczyt na USB (ntfs) ledwie zipie.
Masz rację.
Miałem sytuacje, że na Solarisie i systemie plików UFS miałem parę milionów plików. Robiąc kopię zapasową na taśmie BackupExec zwalniało okropnie, gdy dochodziło do tegoż właśnie katalogu. Jako, że nie mogłem znaleźć rozwiązania, po prostu tarowałem pliki z ostatnich 50 dni, których ludzie potrzebowali. Lipa straszna.
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

Uwaga poza tematem. Nie dziwię się, że to nie wyrabia przy takiej ilości plików. Może warto pomyśleć o zmianie systemu plików - ReiserFS byłby lepszy przy dużej liczbie małych plików, a przynajmniej montować to z noatime (przy założeniu, że działa to na standardowym ext3, a Tobie chce się z tym bawić.

Co do zliczenia tego, to jeśli masz na tej partycji quote, szybciej będzie sprawdzić statystyki dla użytkownika będącego właścicielem plików niż czekać na wynik polecenia find.

A tak w ogóle, to potrzebne Ci te wszystkie pliki? Nie można okresowo zapuszczać jakiegoś "czyściocha"?
sethiel
Junior Member
Posty: 762
Rejestracja: 28 stycznia 2008, 11:50
Lokalizacja: Wrocław

Post autor: sethiel »

To jest pamięć podręczna z generowanej mapy Polski programem MapCenter - pamięć podręczna dla pełnego zbliżenia Polski to około 250GB, generuje się już drugi miesiąc. A producent zapewniał, że będzie w jeden dzień. Potem zmienił zdanie, że jednak w tydzień, a teraz twierdzą, że jednak trochę dłużej.
Poza tematem - program MapCenter ma 100MB i potrafi wygenerować mapę świata, gdzie sama Polska ma koło 250GB - magia.
Liczenie plików puszczę jak już będę mieć pełne zbliżenie.
Parametr w pliku /etc/fstab faktycznie warto zmienić, dziękuję za sugestię.
Jak będę robił to ponownie to na bank będzie to na ReiserFS.

Pliki policzone - trochę ponad 12 milionów, zliczanie potrwało na pewno krócej niż godzinę (a to dopiero siódme przybliżenie - a jest ich bodajże 11).
ODPOWIEDZ