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.