Aby skutecznie wyszukiwać pliki i katalogi w systemie Linux, możesz skorzystać z dwóch niezwykle pomocnych narzędzi: find oraz locate. Poniżej znajdziesz rozbudowany poradnik wraz z praktycznymi przykładami i szczegółowymi wyjaśnieniami, które pozwolą Ci z łatwością odnajdywać dane na swoim systemie.
1. Wyszukiwanie przy użyciu polecenia find
Podstawowa składnia
find [ścieżka] [warunki szukania] [akcje]
- ścieżka – katalog, od którego ma rozpocząć się wyszukiwanie (np.
/home
,.
dla bieżącego katalogu). - warunki szukania – różnorodne filtry, m.in. po nazwie, typie, dacie, rozmiarze.
- akcje – co zrobić z wynikami (np. wyświetlić, usunąć, wykonać skrypt).
Przykłady użycia
- Wyszukiwanie po nazwie pliku –
find /home/user -name "dokument.txt"
Szuka pliku o dokładnej nazwie w katalogu /home/user
oraz podkatalogach.
- Ignorowanie wielkości liter –
find . -iname "*.jpg"
Znajduje wszystkie pliki z rozszerzeniem .jpg
, bez względu na wielkość liter.
- Wyszukiwanie katalogów –
find /var -type d -name "backup"
Szuka katalogów o nazwie „backup” w /var
.
- Wyszukiwanie plików po rozmiarze –
find /tmp -type f -size +100M
Znajduje pliki większe niż 100 MB w katalogu /tmp
.
- Pliki zmodyfikowane w ostatnich 3 dniach –
find . -type f -mtime -3
Przeszukuje bieżący katalog.
- Wykonanie polecenia na znalezionych plikach –
find . -type f -name "*.log" -exec rm {} \;
Usuwa wszystkie pliki .log
z bieżącego katalogu i jego podkatalogów.
- Wykluczenie katalogów z wyszukiwania –
find . -path "./tmp" -prune -o -name "*.bak" -print
Pomija katalog ./tmp
przy przeszukiwaniu.
Wyjaśnienie przydatnych opcji:
- -name – dokładne (czułe na wielkość liter) dopasowanie nazwy.
- -iname – ignoruje wielkość liter.
- -type f – tylko pliki.
- -type d – tylko katalogi.
- -size – limit rozmiaru, np.
+100M
(większe niż 100 MB),-1k
(mniejsze niż 1 KB). - -mtime – czas od ostatniej modyfikacji w dniach.
- -exec – wykonuje polecenie na każdym znalezionym pliku.
- -prune – pomija wskazane katalogi podczas przeszukiwania.
2. Wyszukiwanie przy użyciu polecenia locate
Jak działa locate
Polecenie locate korzysta z bazy danych plików (domyślnie aktualizowanej raz dziennie), dzięki czemu jest ekspresowe – nie przeszukuje fizycznie dysku za każdym razem, tylko gotowy indeks.
Instalacja (w razie braku)
Na Ubuntu i większości dystrybucji:
sudo apt install plocate
lub tradycyjnie:
sudo apt install mlocate
Po instalacji zaktualizuj bazę danych:
sudo updatedb
Baza i aktualizacja mogą być okresowo automatyzowane przez system.
Przykłady użycia
- Podstawowe wyszukiwanie –
locate raport.txt
Bardzo szybko wskazuje pełną ścieżkę do pliku „raport.txt” (także, jeśli jest ich kilka).
- Wyszukiwanie po fragmencie nazwy i w ścieżkach –
locate firefox
Pokaże wszystkie pliki i katalogi, w których nazwie lub ścieżce pojawia się „firefox”.
- Szukanie tylko po nazwie pliku (bez ścieżki) –
locate --basename logo.svg
Ogranicza wyniki tylko do nazw plików, pomijając dopasowania w ścieżce.
- Ograniczenie liczby wyników –
locate -l 10 conf
Wyświetla maksymalnie 10 dopasowań zawierających „conf”.
- Zliczanie liczby plików spełniających warunek –
locate -c cache
Poda liczbę znalezionych plików o wzorcu „cache”.
3. Porównanie find
i locate
Cecha | find | locate |
---|---|---|
Szybkość | Wolniejszy (przeszukuje „na żywo”) | Ekspresowy (działa na bazie danych) |
Aktualność wyników | Zawsze aktualne | Może nie widzieć najnowszych plików |
Wyszukiwanie złożone | Bardzo rozbudowane filtrowanie, akcje | Ograniczone do wzorców |
Wymagania | W standardzie systemu | Niekiedy wymaga instalacji/aktualizacji bazy |
Wskazówka – Jeśli zależy Ci na szybkości – najpierw sięgnij po locate, a jeśli potrzebujesz precyzyjnego filtrowania lub akcje na plikach – użyj find.
4. Typowe problemy i wskazówki
- Jeśli
locate
nie pokazuje nowo utworzonych plików – zaktualizuj bazę poleceniemsudo updatedb
. - find jest wolniejszy przy dużej liczbie plików, ale absolutnie niezastąpiony przy zaawansowanym wyszukiwaniu i automatyzacji działań.
- W obu przypadkach możesz korzystać ze znaków wieloznacznych i wzorców (np.
*.log
zamiast konkretnej nazwy pliku).
Polecenia find
oraz locate
to podstawowe narzędzia każdego użytkownika Linuksa do zarządzania i wyszukiwania plików oraz katalogów. Dzięki ich znajomości znacznie przyspieszysz i usprawnisz codzienną pracę z systemem operacyjnym.