De multe ori este necesar să căutăm anumite tipuri de fișiere în mediile Linux și nu cunoaștem modul corect de a le căuta în mod corespunzător, fără a ne pierde timpul.
Pentru distribuțiile Linux, a fost dezvoltată o comandă numită find care a fost dezvoltată pentru a filtra recursiv obiecte din sistemul de fișiere pe baza unui mecanism condițional. Cu această comandă find putem căuta un fișier sau un director în sistemul său de fișiere.
Dacă includem parametrul -exec, fișierele pot fi găsite și procesate imediat în cadrul aceleiași comenzi.
1. Găsiți fișiere după nume sau extensii comenzi Linux
Putem folosi find din linia de comandă pentru a localiza un anumit fișier după nume sau extensie.
Sintaxa sa este:
găsiți / acasă / nume de utilizator / -nume "* .extension"De exemplu, vom căuta fișiere care se termină cu .gz:
MARI
2. Comenzi la îndemână și sintaxă de utilizat cu comenzi de căutare Linux
Cu comanda find avem câteva opțiuni de parametri precum:
găsiți opțiuni de pornire / expresie caleAtributul de opțiuni va controla comportamentul și metoda de optimizare a procesului de căutare. Atributul home / path va defini directorul de nivel superior unde find va începe filtrarea.
Atributul expresie controlează testele care caută ierarhia directorului pentru a produce ieșire.
De exemplu, putem executa următoarele:
găsiți -O3 -L / var / www / -name "* .html"Această comandă activează nivelul maxim de optimizare (-O3) și vă permite să urmați legăturile simbolice (-L) pentru a căuta în întregul arbore de directoare din calea / var / www / pentru fișierele care se termină cu .html.
MARI
3. Opțiuni și optimizare cu comenzile Găsiți Linux
Configurarea implicită a căutării pentru căutare va ignora legăturile simbolice (fișiere de comenzi rapide), dacă dorim să găsim să urmăm și să luăm legăturile simbolice, putem adăuga opțiunea -L la comandă așa cum am văzut mai devreme. Find are trei (3) niveluri de optimizare care sunt -O1, -O2 și -O3.
Optimizarea -O1 este implicită și vă obligă să căutați să filtrați în funcție de numele fișierului înainte de a rula toate celelalte teste.
Optimizarea la nivelul -O2 acordă prioritate filtrelor de nume de fișiere, ca în -O1, și apoi rulează toate filtrele de tip fișier înainte de a continua cu alte condiții care necesită mai multe resurse. Optimizarea nivelului -O3 permite găsirea de a efectua o optimizare mai profundă și reordonează toate testele pe baza cheltuielilor lor relative și a probabilității de rezultate mai bune.
Unele dintre opțiuni sunt:
Este un filtru bazat pe primul nume de fișier
-O1 (implicit)
Folosiți mai întâi numele de fișier și apoi tipul de fișier
-O2
Reordonați rezultatelePermite căutării să reordoneze automat căutarea pe baza utilizării eficiente a resurselor și a probabilității unor rezultate mai bune.
-O3
Caută directorul curent, precum și toate subdirectoarele X niveluri adânci
-maxdepth X
Căutați indiferent de cazul textului
-nume
Returnează numai rezultatele care nu se potrivesc cu cazul testului
-nu
Efectuați o căutare de fișiere
-tipul f
Căutați directoare
-tipul d
4. Găsiți fișiere după comenzi Linux de modificare a timpului
Comanda find are capacitatea de a filtra o ierarhie de directoare pe baza ultimei modificări a fișierului.
Sintaxa este:
find / -name "* conf" -mtime 8 find / home / user / -name "* conf" -mtime 2Prima comandă va afișa o listă a tuturor fișierelor din întregul sistem de fișiere care se termină cu caractere conf și au fost modificate în ultimele 8 zile. A doua comandă filtrează directorul principal al utilizatorului pentru fișierele cu nume care se termină cu caractere conf și au fost modificate în ultimele 2 zile.
Utilizați Grep pentru a găsi fișiere bazate pe conținut comenzi LinuxComanda Find poate filtra ierarhia directorului numai pe baza unui nume de fișier și metadate, așadar, dacă trebuie să căutați pe baza conținutului fișierului, utilizați un instrument precum grep.
Vom folosi următoarea sintaxă:
găsi. -tip f -exec grep "exemplu" '{}' \; -imprimareAceasta găsește toate obiectele din ierarhia curentă a directorului (.) Care este un fișier (-tip f) și apoi rulează comanda grep „exemplu” pentru fiecare fișier care îndeplinește condițiile. Fișierele potrivite sunt imprimate pe ecran (-print). Parantezele ({}) sunt un substituent pentru rezultatele rezultatelor căutării. {} Este inclus în ghilimele simple (') pentru a evita grep să redea un nume de fișier greșit. Comanda -exec este terminată cu un punct și virgulă "(;)", care trebuie scăpat "(\;)" pentru a evita interpretarea de către shell.
Cum să găsiți și să procesați fișiere utilizând comenzile Găsiți comanda LinuxPutem folosi opțiunea -exec pentru a rula comenzi împotriva tuturor obiectelor care se potrivesc cu expresia de căutare.
Sintaxa sa este:
găsi. -nume "rc.conf" -exec chmod o + r '{}' \;Aceasta va filtra toate obiectele din ierarhia curentă (.) Pentru fișierele numite rc.conf și va rula comanda chmod sau + r pentru a modifica permisiunile rezultatelor căutării.
Deci, find este un aliat pentru căutarea completă a fișierelor pe Linux.