Efectuarea cautarilor

Pagina principala   Curs Laborator Proiect

  Cautare in fisiere>>

Cautarea fisierelor

Comanda find este folosita pentru a cauta orice fel de fisier (executabil, text, cod sursa etc.) intr-un anumit director sau pe tot hard-disk-ul, in directoarele unde utilizatorul are drept de citire. Sintaxa este (a se vedea si pagina de manual):

find cale parametru

unde prin cale se indica calea absoluta sau relativa catre directorul in care vreti sa faceti cautarea. In cazul in care se cauta pe tot hard-disk-ul calea se indica bineinteles prin /, adica cautare incepand din radacina si descendent in toate directoarele si subdirectoarele. Parametrul poate fi -perm, -name, -atime, -user etc, in functie de ce anume se cauta: numele unui fisier, fisiere cu o anumita permisiune, dupa data ultimei accesari, fisiere ce apartin unui anumit utilizator etc. Mai multe detalii gasiti in pagina de manual.
De exemplu daca doriti sa cautati fisierele din cont la care aveti numai drept de citire, adica cu permisiunea:

r-- --- --- (altfel scris 400), atunci comanda este:

find ~ -perm 400

Cea mai simpla cautarea este cea dupa nume. Daca cautati de exemplu programul cu numele traceroute pentru a vedea in ce director se afla, ca sa o adaugati la calea de cautare, comanda corespunzatoare este:

find / -name traceroute

Atentie: Daca faceti cautarea de la radacina, se vor lista pe iesirea standard si erorile datorate permisiunilor restrictive la diferitele directoare prin care trece cautarea. In cazul acesta, pentru a nu aparea erorile se poate redirecta iesirea de eroare (identificat prin 2) catre /dev/null:

find / -name traceroute 2>/dev/null

sau erorile pot fi redirectate catre un fisier pentru a vedea in ce directoare nu s-a putut face cautarea:

find / -name traceroute 2>find_erori

Cautarea fisierelor dupa nume partial

Daca nu stiti numele exact al fisierului, se poate face cautarea si dupa numele partial. Cateva exemple:

find . -name '*.jpg' cauta in directorul curent toate fisierele cu extensia .jpg
find . -name '*om*' cauta in directorul curent toate fisierele care contin caracterele om, indiferent de pozitia lor in numele fisierului
find . -name '?p*'
cauta in directorul curent toate fisierele care au al doilea caracter litera p.
find . -name '[o-t]p*' cauta in directorul curent toate fisierele care incep cu oricare din combinatiile op, pp, rp, sp, tp,

Cautarea fisierelor dupa diverse caracteristici

Fisierele pot fi cautate si dupa o anumita caracteristica, cum ar fi marimea, data ultimei accesari, proprietarul sau grupul careia ii apartine etc. De exemplu pentru a cauta un fisier de o anumita marime, se foloseste optiunea size. Comanda de mai jos va cauta toate fisierele din directorul curent care au dimenaiunea de 3000 de octeti:

find . -size 3000c

Daca se doreste specificarea marimii in kiloocteti, atunci dupa marimea specificata in loc de caracterul c se foloseste k.

Pentru a cauta toate fisierele cu dimensiunea mai mare de 400kocteti, comanda este:

find . -size +400k

Alte comenzi de cautare:

find . -amin -60
find / -atime -3
find / -mmin -30
find / -mtime -2
find / -empty
find / -group xxx

find / -user georgel
find / -nouser

Cauta fisierele accesate in ultima ora
Cauta fisierele accesate in ultimele 3 zile
Cauta toate fisierele modificate in ultimele 30 de minute
Cauta toate fisierele modificate in ultimele 2 zile
Cauta toate fisierele si directoarele goale
Cauta toate fisierele care apartin de grupul xxx
Cauta toate fisierele care apartin de utilizatorul georgel
Cauta toate fisierele care au ca proprietar un utilizator neexistent

Mai multe detalii in pagina de manual a comenzii find.

  Cautare in fisiere>>