W systemach Linux często zachodzi potrzeba policzenia plików lub katalogów znajdujących się w określonym miejscu systemu plików. Istnieje wiele metod wykonania tego zadania, ale najskuteczniejszym i najbardziej uniwersalnym narzędziem jest wbudowane polecenie find, które dostępne jest w większości dystrybucji Linux. Poniższy artykuł szczegółowo omawia różne techniki liczenia plików i katalogów przy użyciu tego polecenia, prezentując zarówno podstawowe, jak i zaawansowane metody, które pozwalają na filtrowanie wyników według różnych kryteriów, takich jak typ pliku czy głębokość zagnieżdżenia. Wszystkie przedstawione techniki są zoptymalizowane pod kątem wydajności i nie obciążają nadmiernie zasobów systemowych.
Jak policzyć katalogi w katalogu?
Podczas pracy z systemem plików Linux często musimy wiedzieć, ile katalogów znajduje się w określonym miejscu. W zależności od potrzeb, możemy być zainteresowani tylko katalogami na najwyższym poziomie lub wszystkimi katalogami, włączając w to struktury zagnieżdżone. Polecenie find umożliwia nam precyzyjne określenie naszych wymagań za pomocą odpowiednich parametrów.
Liczenie katalogów na najwyższym poziomie
Aby znaleźć liczbę katalogów znajdujących się bezpośrednio w wybranym katalogu (bez zagnieżdżonych podkatalogów), możemy użyć polecenia find z ograniczeniem głębokości przeszukiwania. Parametry -mindepth 0 i -maxdepth 0 ograniczają wyszukiwanie tylko do najwyższego poziomu, a parametr -type d określa, że interesują nas tylko katalogi1.
| Polecenie | Opis |
|---|---|
find my_dir/* -mindepth 0 -maxdepth 0 -type d | Wyświetla katalogi na najwyższym poziomie |
find my_dir/* -mindepth 0 -maxdepth 0 -type d | wc -l | Liczy katalogi na najwyższym poziomie |
Powyższe polecenie najpierw wyszukuje wszystkie katalogi spełniające kryteria, a następnie przekazuje wynik do polecenia wc -l, które zlicza liczbę linii w otrzymanym wyniku, dając nam dokładną liczbę katalogów1.
Jak policzyć wszystkie katalogi łącznie z zagnieżdżonymi?
Jeśli potrzebujemy policzyć wszystkie katalogi, w tym te znajdujące się w podkatalogach, możemy pominąć parametry ograniczające głębokość wyszukiwania. Polecenie find automatycznie przeszuka całą strukturę katalogów, począwszy od wskazanego punktu.
| Polecenie | Opis |
|---|---|
find my_dir/* -type d | Wyświetla wszystkie katalogi, w tym zagnieżdżone |
find my_dir/* -type d | wc -l | Liczy wszystkie katalogi, w tym zagnieżdżone |
Usunięcie parametrów -mindepth i -maxdepth pozwala poleceniu find na rekurencyjne przeszukiwanie całej struktury katalogów, co jest niezwykle przydatne przy analizie złożonych hierarchii plików1.

Jak policzyć pliki w określonym katalogu?
Podobnie jak w przypadku katalogów, często potrzebujemy wiedzieć, ile plików znajduje się w określonym miejscu systemu plików. Polecenie find z parametrem -type f pozwala nam wyszukiwać wyłącznie pliki, z pominięciem katalogów i innych typów obiektów systemu plików1.
Liczenie plików na najwyższym poziomie
Aby policzyć tylko pliki znajdujące się bezpośrednio w określonym katalogu, bez przeszukiwania podkatalogów, używamy podobnej konstrukcji jak w przypadku katalogów, zmieniając tylko typ wyszukiwanych obiektów1.
| Polecenie | Opis |
|---|---|
find my_dir/* -mindepth 0 -maxdepth 0 -type f | Wyświetla pliki na najwyższym poziomie |
find my_dir/* -mindepth 0 -maxdepth 0 -type f | wc -l | Liczy pliki na najwyższym poziomie |
To polecenie szybko zwraca liczbę plików znajdujących się bezpośrednio w określonym katalogu, co jest przydatne przy analizowaniu zawartości poszczególnych katalogów bez zagłębiania się w całą strukturę1.
Jak policzyć wszystkie pliki łącznie z zagnieżdżonymi?
Jeśli chcemy policzyć wszystkie pliki w danym katalogu, włącznie z tymi, które znajdują się w podkatalogach, możemy użyć następujących poleceń1:
| Polecenie | Opis |
|---|---|
find my_dir/* -type f | Wyświetla wszystkie pliki, w tym te w podkatalogach |
find my_dir/* -type f | wc -l | Liczy wszystkie pliki, w tym te w podkatalogach |
To podejście jest niezwykle przydatne, gdy chcemy uzyskać całkowitą liczbę plików w złożonej strukturze katalogów, na przykład przy analizie zajętości dysku lub przy przygotowaniu kopii zapasowej1.
Jak policzyć określone typy plików?
W wielu sytuacjach interesują nas tylko pliki określonego typu, na przykład pliki tekstowe, skrypty powłoki czy obrazy. Polecenie find umożliwia filtrowanie wyników według rozszerzeń plików za pomocą parametru -name.
Jak wyszukać pliki z danym rozszerzeniem?
Poniższe przykłady pokazują, jak wyszukiwać pliki tekstowe (.txt) i skrypty powłoki (.sh) w określonym katalogu1:
| Polecenie | Opis |
|---|---|
find my_dir/* -type f -name "*.txt" | Wyświetla pliki tekstowe |
find my_dir/* -type f -name "*.sh" | Wyświetla skrypty powłoki |
find my_dir/* -type f -name "*.txt" | wc -l | Liczy pliki tekstowe |
find my_dir/* -type f -name "*.sh" | wc -l | Liczy skrypty powłoki |
Ta metoda pozwala na bardzo precyzyjne filtrowanie wyników wyszukiwania, co jest szczególnie przydatne, gdy pracujemy z projektami zawierającymi różne typy plików i potrzebujemy skupić się tylko na konkretnym rodzaju1.
Jak wyszukać jednocześnie pliki z kilkoma rozszerzeniami?
Polecenie find umożliwia również wyszukiwanie wielu typów plików jednocześnie, używając operatora logicznego OR (-o). Jest to przydatne na przykład przy wyszukiwaniu różnych formatów obrazów1:
| Polecenie | Opis |
|---|---|
find my_dir/* -type f $$ -name "*.png" -o -name "*.jpg" $$ | Wyświetla pliki PNG i JPG |
Użycie nawiasów i operatora -o pozwala na tworzenie złożonych warunków wyszukiwania, co jest niezwykle przydatne przy bardziej zaawansowanych scenariuszach, takich jak wyszukiwanie wszystkich plików dokumentów (.doc, .docx, .pdf) czy plików multimedialnych (.mp3, .mp4, .avi)1.
Jak podsumować ilość wszystkich plików katalogów?
Jeśli potrzebujemy szybkiego podsumowania liczby plików i katalogów w określonej lokalizacji, możemy skorzystać z polecenia tree, które przedstawia strukturę katalogów w formie drzewa i na końcu wyświetla statystyki1.
| Polecenie | Opis |
|---|---|
tree my_dir/ | tail -1 | Wyświetla podsumowanie liczby plików i katalogów |
To polecenie jest szczególnie przydatne, gdy potrzebujemy szybkiego przeglądu struktury katalogu wraz z podsumowaniem ilościowym. Wynik zawiera zarówno liczbę katalogów, jak i plików w jednej, zwięzłej informacji1.
Zastosowanie
Przedstawione w tym artykule metody liczenia plików i katalogów mają szerokie zastosowanie w administracji systemami Linux, automatyzacji zadań i zarządzaniu danymi. Warto zauważyć, że polecenie find jest bardzo efektywne nawet przy pracy z dużymi strukturami katalogów, jednak w przypadku bardzo dużych systemów plików możemy jeszcze bardziej zoptymalizować wyszukiwanie.
Jedną z metod optymalizacji jest ograniczenie głębokości wyszukiwania, gdy interesują nas tylko pliki do określonego poziomu zagnieżdżenia. Na przykład, aby wyszukać pliki nie głębiej niż trzy poziomy podkatalogów, możemy użyć parametru -maxdepth 3. Dodatkowo, jeśli wiemy, że interesujące nas pliki znajdują się na pewnym minimalnym poziomie zagnieżdżenia, możemy użyć parametru -mindepth aby pominąć płytsze poziomy.
Przedstawione techniki można łączyć z innymi parametrami polecenia find, takimi jak -size (do filtrowania według rozmiaru pliku) czy -mtime (do filtrowania według czasu modyfikacji), co daje praktycznie nieograniczone możliwości wyszukiwania i liczenia plików i katalogów według różnych kryteriów.
Podsumowanie
W tym artykule opisane różne metody liczenia plików i katalogów w określonym katalogu w systemie Linux. Poznaliśmy podstawowe i zaawansowane użycie polecenia find, które pozwala na precyzyjne wyszukiwanie i liczenie zarówno katalogów, jak i plików, z możliwością filtrowania według rozszerzeń i innych kryteriów. Dodatkowo, zaprezentowaliśmy szybką metodę uzyskiwania podsumowania za pomocą polecenia tree.
Wszystkie przedstawione metody są dostępne w standardowej instalacji większości dystrybucji Linux i nie wymagają instalowania dodatkowych narzędzi. Dzięki tym technikom możemy efektywnie zarządzać i analizować strukturę plików w naszym systemie, co jest niezbędne zarówno dla administratorów systemów, jak i dla zwykłych użytkowników pracujących z dużą liczbą plików i katalogów.