Kako koristiti naredbu Find u Linuxu

Kada radite u UNIX okruženju, kao što je u ovom slučaju Linux, idealno je detaljno znati korištenje nekih naredbi koje će nam pomoći u više zadataka, bilo administrativnih ili osobnih. Jedna od njih je naredba Find koja se, kako joj naziv označava, koristi za pronalaženje datoteka ili elemenata koji se nalaze u operacijskom sustavu na jednostavan, ali funkcionalan i cjelovit način.

Kad odlučimo upotrijebiti naredbu find, možemo pretraživati ​​i locirati popis datoteka ili direktorija na temelju uvjeta koje navedemo u sintaksi upotrebe za izvršavanje. Zatim ćemo vidjeti što je naredba find i kako je možemo koristiti u Linuxu koristeći različite parametre.

Što je pronaćiFind je naredba unutar distribucija Linuxa koja je vrlo korisna unatoč tome što je pomalo nepoznata. To je naredba koja će olakšati zadatak pronalaženja datoteke kada imamo mnogo datoteka i doista ju je teško pronaći. Osim datoteka, možete pretraživati ​​ili brisati čitave direktorije. Možete pretraživati ​​s posebnim filterima kao što su veličina, naziv, proširenje, datum …

Filtriranje pretraživanja pomoću značajke FindJedna od velikih prednosti korištenja ove naredbe je ta što rezultate možemo filtrirati prema različitim varijablama, kao što su:

  • Dopuštenja
  • Grupe
  • Korisnici
  • Vrsta datoteke
  • Datum stvaranja ili izmjene
  • Dostupne veličine i više opcija

Solvetic će objasniti različite metode za učinkovitu uporabu naredbe Find u Linuxu, a za ovaj slučaj koristit ćemo Ubuntu 19.04. Vidjet ćemo kako pomoću naredbe find možemo pronaći i pretraživati ​​datoteke s filterima pomoću Linux terminala.

1. Kako pretraživati ​​datoteke prema imenu ili proširenju pomoću naredbi u Linuxu


Ovo je najvažniji dio korištenja naredbe Find, a za to je potrebno ili znati naziv objekta ili njegovo proširenje (.mp4, .txt, Jpg.webp, itd.) Kako bi se dobio izravan rezultat.

Korak 1
Na primjer, želimo pronaći datoteku pod nazivom Solvetic.docx koja se nalazi u mapi na radnoj površini, u ovom slučaju moramo se kretati do te staze, a zatim izvršiti sljedeće:

 find -name Solvetic.docx 
Korak 2
Kao rezultat toga, vidjet ćemo mapu u kojoj se ta datoteka hostira (ako postoji):

Korak 3
Naprotiv, ako želimo vidjeti sve datoteke s određenim nastavkom, poput .docx, izvršit ćemo sljedeće:

 find -name "* .docx"
Korak 4
Zvjezdica navodi sve datoteke s ovim nastavkom

Korak 5
Sintaksa opće namjene za naredbu Find je sljedeća:

 pronaći [-H] [-L] [-P] [put …] [izraz] 
Korak 6
Ovi parametri su:

-HNe slijedi simbolične veze, osim ako se obrađuju argumenti naredbenog retka.

-LSlijedite simbolične veze.

-PNikada ne slijedi simboličke veze i zadana je opcija

Korak 7
Opcija [put …] označava mjesto na kojem će se vršiti pretraživanje na Linuxu. Parametar [izraz] mogu biti operatori, opcije, testovi ili radnje koje treba izvršiti. Vidimo da će prema zadanim postavkama naredba Find zanemariti dostupne simbolične veze, ali pomoću -L tražit ćemo ih za potpunije rezultate.
Postoje tri razine optimizacije koje možemo odabrati kada pokrenemo Find, a to su:

  • -O1
  • -O2
  • -O3

Korak 8
Vrijednost -O1 zadana je opcija i njezina je funkcija prisiliti naredbu Find na pretraživanje na temelju naziva datoteke koji smo definirali. Razina -O2 vodi računa o prioritiziranju filtera naziva datoteke, tada će izvršiti sve filtre ovisno o vrsti datoteke, a kasnije će koristiti druge uvjete za potpune rezultate, a razina -O3 izvršava dublju optimizaciju koristeći sve resurse do maksimuma .

Pronađite opcije naredbiOpćenite opcije Find su:

  • -O1: zadana vrijednost, to je filter koji se temelji na imenu navedene datoteke.
  • -O2: Pretražite prvo prema nazivu datoteke, a zatim prema vrsti
  • -O3: Pokrenite pretraživanje koje automatski sortira rezultate na temelju korištenja resursa
  • -maxdepth X: Pretražujte trenutni direktorij i poddirektorije na X razinama.
  • -iname: Pretražujte bez oslanjanja na tekst.
  • -not: Vraća samo rezultate koji ne odgovaraju pretraživanju
  • -type f: Pretražujte samo datoteke.
  • -tip d: pokretanje pretraživanja direktorija

2. Kako pronaći datoteke po imenu ili proširenju s naredbama koje ne razlikuju velika i mala slova u Linuxu

Ovo je metoda koja nam omogućuje pronalaženje datoteka i prikaz rezultata koji sadrže velika i mala slova:

 find -name solutiontic.docx 

Potražite imena u direktorijimaOvom metodom možemo otkriti sve direktorije s imenom Solvetic u matičnom direktoriju (/):

 pronaći / -tip d -imena Solvetic

Pronađi datoteke bez dopuštenja 777Dopuštenja 777 (Rwxrwxrwx) s dopuštenjima koja nemaju ograničenja, to jest, svaki korisnik im može pristupiti.
Da bismo vidjeli datoteke koje nemaju ovo dopuštenje, izvršit ćemo sljedeće:

 pronaći / -tip f! -trajna traka 777 

Sada, ako želimo vidjeti datoteke koje imaju 777 dopuštenja, izvršit ćemo:

 pronaći. -tip f -perm 0777 -tisak 

Pronađite SGID datoteke s 2644 dopuštenjaDopuštenje 2644 datoteke su koje imaju dopuštenja za čitanje i pisanje, pa ćemo vidjeti ove datoteke koje ćemo izvršiti:

 nađi / -dozvoli 2644

Pronađite SUID datoteke u LinuxuSUID datoteke (Postavi korisnički ID vlasnika pri izvršavanju) posebne su dozvole za datoteke dodijeljene elementu i služe za privremeno davanje dozvola korisniku radi izvođenja programa ili datoteke s dopuštenjima vlasnika datoteke.
Da bismo ih vidjeli, izvršit ćemo sljedeće:

 pronaći / -perm / u = s

Pretražite SGID datotekeSGID datoteke (Postavi ID grupe pri izvršavanju) posebna su vrsta dozvola za datoteke pomoću kojih je moguće naslijediti pristupne dozvole korisnika koji je prijavljen. Za pregled ovih datoteka izvršit ćemo sljedeće:

 pronaći / -perm / g = s

Pronađite datoteke samo za čitanjeDa bismo vidjeli koje su datoteke samo za čitanje u Linuxu, izvršit ćemo:

 pronaći / -perm / u = r

Pretražite izvršne datotekeAko sa sigurnošću želimo znati koje su datoteke izvršne, možemo upotrijebiti sljedeći redak:

 pronaći / -perm / a = x

3. Kako pronaći datoteke s dozvolama 777 i chmod 755 na Linuxu

Korak 1
Ovo su posebna dopuštenja za čitanje i pisanje, da biste vidjeli ove datoteke koje ćemo izvršiti:

 find / -type d -perm 777 -print -exec chmod 755 {} \;

Korak 2
Sada, ako želimo pronaći datoteke s dopuštenjima 777 i chmod 644, izvršavamo:

 find / -type f -perm 0777 -print -exec chmod 644 {} \;

4. Pronađite i izbrišite datoteke s naredbama u Linuxu

Pronađite i izbrišite datotekuPomoću programa Find možemo otkriti datoteku i nastaviti s njenim brisanjem, u ovom slučaju izbrisat ćemo datoteku riješen.docx za koju izvršavamo sljedeće:

 pronaći. -tip f -name "rješavanje.docx" -exec rm -f {} \; 

Ako želimo izbrisati nekoliko datoteka, možemo koristiti njihovo proširenje:

 pronaći. -tip f -name "* .docx" -exec rm -f {} \;

Potražite prazne datoteke ili direktorijeMožemo navesti put, poput / tmp, za pronalaženje praznih direktorija, u ovom slučaju izvršavamo sljedeće:

 find / tmp -tip d -prazan

Za traženje praznih datoteka izvršavamo:

 find / tmp -tip f -prazan

Pronađite skrivene datotekeU Linuxu i u svim sustavima neke su datoteke skrivene iz sigurnosnih razloga, ako je za neki administrativni zadatak ili zadatak podrške potrebno vidjeti što je to, možemo izvršiti sljedeću naredbu sa željenom stazom, u ovom slučaju home:

 find / home -type f -name ". *"

Pronađite datoteke korisnikaDruga od mnogih opcija koje nam nudi naredba Find je otkrivanje datoteka određenog korisnika, na primjer, pronalaženje svih datoteka rješenog korisnika u kućnom direktoriju koji ćemo izvršiti sljedeće:

 find / home -korisnički rješavač

Pronađite datoteke iz određene grupeDa bismo pronašli elemente grupe, izvršit ćemo sljedeći redak:

 Rješenje za pronalaženje / kućnu skupinu

5. Pronađite datoteke u vremenskom rasponu naredbama u Linuxu

Korak 1
Pomoću naredbe Find bit će moguće pretraživati ​​datoteke koje su korištene u rasponu vremena, na primjer, da bismo vidjeli datoteke izmijenjene u posljednjih 30 dana koje možemo izvršiti:

 find / -mtime 30 

Korak 2
Da bismo vidjeli datoteke koje su dale pristup, izvršavamo:

Korak 3
Da bismo vidjeli datoteke izmijenjene u rasponu dana, na primjer između 1 i 5, upotrijebit ćemo sljedeći redak:

 pronaći / -mtime +1 -mtime -5

Korak 4
Ako želimo vidjeti datoteke koje su predstavile bilo kakvu promjenu u posljednjih sat vremena ili minuta, možemo izvršiti sljedeće:

 pronaći / -cmin -45
Korak 5
Ovdje će se prikazati datoteke iz zadnjih 45 minuta:

Korak 6
Slično, možemo navesti datoteke kojima se pristupalo u rasponu vremena:

 pronaći / -amin -60 

6. Pronađite datoteke određene veličine pomoću naredbi u Linuxu

Korak 1
Moguće je definirati veličinu datoteke unutar kriterija pretraživanja, pa se tako vide sve datoteke čija je težina 10 MB koje izvršavamo:

 pronaći / -veličina 10M

Korak 2
Za utvrđivanje raspona težine koristit ćemo:

 pronaći / -veličina + 15M -veličina -90M

Korak 3
Ako iz nekog razloga želimo otkriti i izbrisati datoteku određene veličine, upotrijebit ćemo sljedeću sintaksu:

 pronaći / -veličina + 200M -exec rm -rf {} \;
BilješkaVerzija find -a u Unixu ima nekoliko nedostataka, stoga moramo izmijeniti našu naredbu da bismo dobili željeni rezultat, na primjer:

  • Na Linuxu
 pronaći. -veličina 50M | xargs ls -l
  • Na Unixu
 pronaći. -veličina 50M -tisak0 | xargs -0 ls -l 
Na razini skripti svi rezultati s nalazom su pozitivni bez obzira na to hoćemo li dobiti rezultate ili ne, u linuxu imamo opciju -print -quit u slučaju da ne dobijemo rezultate.

Unixovoj verziji Finda nedostaje ova opcija, pa je najbolje koristiti je zajedno s grepom za provjeru rezultata, na primjer.

 čitati -r a ako se pronađe. -maxdepth 1 -name "$ a" -print -quit | grep -q. zatim echo "Datoteka je pronađena" else echo "Nije pronađena datoteka" ako

7. Grafički pronađite datoteke u Linuxu


Trenutne distribucije Linuxa, s grafičkim okruženjem (GUI), nude nam mogućnost korištenja integrirane tražilice za jednostavno otkrivanje željenih datoteka, u slučaju Ubuntu 19.04 možemo pristupiti datotekama i u polje za pretraživanje unijeti željeni izraz odmah prikazati povezane rezultate:

POVEĆAJTE

Vidimo da je pretraživanje datoteka u Linuxu nešto doista dovršeno zahvaljujući naredbi Find i njezinim različitim varijacijama kako bi se postigli najbolji rezultati.

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave