Načini korištenja naredbe 'find' za efikasnije pretraživanje imenika


Ovaj vodič će vas provesti kroz različite načine pronalaženja direktorija u Linuxu. Kao što možda već znate, u Linuxu je sve datoteka uključujući direktorije. Jedna od uobičajenih stvari koje će Linux korisnik raditi unutar komandne linije je traženje datoteke ili direktorija.

Postoji nekoliko različitih sredstava i uslužnih programa koji se koriste za traženje datoteka u komandnoj liniji, kao što su find, locate i which. Međutim, posljednji uslužni program (koji) se koristi samo za lociranje komande.

U okviru ovog tutorijala, uglavnom ćemo se fokusirati na uslužni program find, koji pretražuje datoteke na živom Linux sistemu datoteka i efikasniji je i pouzdaniji u poređenju sa lociranjem.

Loša strana locate je to što čita jednu ili više baza podataka koje je kreirao updatedb, ne pretražuje kroz sistem datoteka uživo. Osim toga, ne nudi tako fleksibilnost u pogledu odakle tražiti (početna tačka).

Ispod je sintaksa za pokretanje naredbe locate:

locate [option] [search-pattern]

Da bismo demonstrirali nedostatak lociranja, pretpostavimo da tražimo direktorij pod nazivom pkg u trenutnom radnom direktoriju.

Napomena: U naredbi ispod, opcija --basename ili -b govori locirati< da odgovara samo osnovnom imenu datoteke (direktorijuma) (koje je tačno pkg), ali ne i stazi (/path/to/pkg). Gdje je \ globing karakter, onemogućuje implicitnu zamjenu pkg sa *pkg*.

locate --basename '\pkg'

Kao što možete vidjeti iz gornjeg izlaza naredbe, locate će pretraživati počevši od korijenskog direktorija (/), zbog čega se podudaraju drugi direktoriji sa istim imenom.

Stoga, da biste riješili ovaj problem, koristite pronađi slijedeći pojednostavljenu sintaksu u nastavku:

find starting-point options [expression]

Pogledajmo nekoliko primjera.

Da biste tražili isti direktorij (pkg) iznad, unutar trenutnog radnog direktorija, pokrenite sljedeću naredbu, gdje oznaka -name čita izraz koji je u ovom slučaju ime direktorija.

find . -name "pkg"

Ako naiđete na greške “Dozvola odbijena”, koristite sudo naredbu na sljedeći način:

sudo find . -name "pkg"

Možete spriječiti find da traži druge tipove datoteka osim direktorija korištenjem -type zastavice da odredite tip datoteke (u naredbi ispod d znači direktorij) na sljedeći način:

sudo find . -type d -name "pkg"

Nadalje, ako želite da navedete direktorij u formatu dugog popisa, koristite prekidač akcije -ls:

sudo find . -type d -name "pkg" -ls

Zatim, opcija -iname će omogućiti pretraživanje bez obzira na velika i mala slova:

sudo find . -type d -iname "pkg" 
sudo find . -type d -iname "PKG" 

Da biste pronašli zanimljivije i naprednije informacije o korišćenju, pročitajte man stranice pronađi i lociraj.

man find
man locate

Kao posljednja napomena, naredba find je pouzdanija i efikasnija za pretraživanje datoteka (ili direktorija) u Linux sistemu kada se odmjeri u odnosu na naredbu locate.

Na isti način kao i prije, ne zaboravite nam poslati povratne informacije ili pitanja putem odjeljka za komentare ispod. Na kraju, uvijek ostanite povezani na Tecmint.