Pronađite datoteke koje sadrže određeni tekst u Linuxu
Linux, bez obzira na distribuciju koju koristite, dolazi s nizom GUI alata koji omogućuju pretraživanje datoteka. Mnogi moderni upravitelji datoteka podržavaju pretraživanje datoteka izravno na popisu datoteka. Međutim, postoji niz situacija kada trebate koristiti konzolu, na primjer, tijekom SSH sesije ili kada se X poslužitelj ne pokrene. Evo kako pomoću terminala možete brzo pronaći datoteke koje sadrže određeni tekst.
Ako možete koristiti GUI, traženje datoteka nije problem. U mom omiljenom XFCE desktop okruženju, Thunar upravitelj datoteka omogućuje pretraživanje datoteka upisivanjem naziva datoteke izravno u popis datoteka.
Međutim, nijedan od upravitelja datoteka koje sam isprobao ne dopušta traženje sadržaja datoteke.
Da biste zaobišli ovo ograničenje kada radite u GUI sesiji, možete koristiti Satfish. Satfish je popularan alat za pretraživanje. Omogućuje traženje sadržaja datoteke. Morate kliknuti na ikonu zupčanika i omogućiti opciju Pretražite sadržaj datoteke.
Međutim, kada je u pitanju terminal, ne možete koristiti nikakav grafički alat. Također, smatram da Catfish nije koristan i preferiram klasične konzolne alate u odnosu na njega. Ovdje su metode i alati koje koristim.
Da biste pronašli datoteke koje sadrže određeni tekst u Linuxu, učinite sljedeće.
- Otvorite svoju omiljenu terminalsku aplikaciju. XFCE4 terminal je moja osobna preferencija.
- Upišite sljedeću naredbu:
find ./ -type f -exec grep -l "tekst za pronalaženje" {} \;
- Ovo će proizvesti popis datoteka koji sadrži potrebni dio teksta.
Naredba find će tražiti datoteke počevši od trenutnog direktorija, "./". Umjesto toga možete odrediti željeni put.
Opcija -vrsta f govori mu da traži samo datoteke i isključi direktorije. Također, možete učiniti da traži samo određenu vrstu datoteke dodavanjem opcije na sljedeći način:pronađi ./ -type f -iname "*.txt" -exec grep -l "tekst za pronalaženje" {} \;
Pogledajte sljedeću snimku zaslona:
The -izvrš opcija poziva grep alat za svaku od odgovarajućih datoteka kako bi provjerio njihov sadržaj. Ako se tekst pronađe u datoteci, njegov će naziv biti dodan u izlaz, zahvaljujući -l opcija.
Alternative
Postoje alternative gore opisanim metodama. Prije svega, možete koristiti samo grep alat. Pokušajte sljedeću naredbu:
grep -iRl "tekst za pronalaženje" ./
- -i označava zanemarivanje velikih i malih slova.
- -R označava rekurzivnu obradu datoteke.
- -l znači "prikaži naziv datoteke, a ne sam rezultat".
Kao što vidite, ova metoda je manje fleksibilna od pronaći naredba.
Ponoćni zapovjednik
Druga metoda koju često koristim je Midnight Commander (mc), aplikacija za upravljanje datotekama na konzoli. Za razliku od find ili grep, mc nije uključen prema zadanim postavkama u svim Linux distribucijama koje sam isprobao. Možda ćete ga morati sami instalirati.
Da biste pronašli datoteke koje sadrže određeni tekst pomoću Midnight Commandera, pokrenite aplikaciju i pritisnite sljedeći slijed na tipkovnici:
Alt + Shift + ?
Ovo će otvoriti dijaloški okvir za pretraživanje.
Ispunite odjeljak "Naziv datoteke:". Možete odrediti nešto poput "*.txt" za traženje teksta samo u tekstualnim datotekama.
Sada, ispunite Sadržaj: kutija. Upišite tekst koji datoteke sadrže i pritisnite tipku Enter.
Pronaći će sve datoteke koje odgovaraju kriterijima.
To je to.