Linux: zliczanie liczby plików w katalogu

W tym wpisie przedstawię sposób na zliczenie liczby plików w danym folderze za pomocą konsoli. Jest to niezwykle przydatne polecenie, kiedy wgrywamy pliki z dysku na serwer i chcemy sprawdzić czy wszystkie się wgrały.

Pliki możemy zliczyć za pomocą prostego polecenia, gdzie targetdir to nazwa katalogu, w którym chcemy pliki zliczyć:

1
ls -1 targetdir | wc -l

Zwróć uwagę, że w powyższym poleceniu w momencie listowania plików odejmujemy jeden, czyli usuwamy pierwszą linijkę. Robimy to, ponieważ gdybyś wykonał powyższe polecenie:

1
ls -l targetdir | wc -l

Wtedy wynik byłby o jeden większy. Dzieje się tak dlatego, że w pierwszej linijce jest podana liczba wszystkich plików.

Pierwsze polecenie zlicza również dowiązania symboliczne oraz podkatalogi. Nie zlicza jednak zawartości katalogów (nie zlicza plików rekurencyjnie). Jeżeli chcemy wykluczyć ze zliczania podkatalogi, to użyjemy polecenia:

1
find targetdir -type f  -maxdepth 1 | wc -l

W powyższym poleceniu fragment -type f oznacza, że chcemy zliczać jedynie zwykłe pliki. Natomiast fragment -maxdepth 1 oznacza, że chcemy zliczać pliki tylko w danym katalogu z pominięciem podkatalogów. Jeżeli chcemy zliczyć pliki rekurencyjnie, to znaczy z katalogu głównego i wszystkich podkatalogów usuniemy ten fragment używając polecenia:

1
find targetdir -type f | wc -l

Jednak powyższe polecenie nie zlicza dowiązań symbolicznych, aby je dodać należy użyć poniższego polecenia:

1
find targetdir -type f -follow  -maxdepth 1 | wc -l

Leave a Comment

20 + six =