find - shell comanda pentru căutarea fișierelor și directoarelor în ierarhia directoarelor. Luați în considerare câteva modalități de utilizare a acestei comenzi și a mai multor opțiuni de căutare.
Cel mai simplu exemplu de a găsi un fișier după nume folosind comanda Find este:
găsi. - test de nume
După ce am scris că scrieți calea către dosarul în care trebuie să căutăm, am specificat un punct, adică căutăm în directorul curent. Apoi, comutatorul -name este folosit pentru a căuta după nume, urmat de numele dosarului sau fișierului pe care îl căutăm.În acest exemplu, am instruit comanda să caute un fișier numit test în directorul curent (.-Point este denumirea directă a directorului)
găsi. - încercați să intrați
- aceeași căutare după nume, dar nu în funcție de majuscule în numele fișierului.
Dar, de fapt este că, în exemplul de mai sus, nu am specificat că este în căutarea unui fișier de pe care, în cazul în care directorul curent sau un subdirector al unui dosar denumit test de existent, atunci acesta le va cădea în rezultatele căutării. Pentru a indica faptul că căutăm un fișier, iar numele dosarelor nu trebuie să fie incluse în rezultatele căutării, utilizați "tipul"
găsi. -type f -name test
"- tip f" - am indicat că căutăm un fișier (f)
Pentru a include în dosar numai dosare numite test și nu căutăm fișierele pe care le folosim
"- tip d"
găsi. - test de tip d -name
Și dacă trebuie să găsim toate fișierele cu extensia ".db", folosiți asteriscul "*".
* - înlocuiește orice set de caractere. Apoi, pentru a găsi toate fișierele cu extensia ".db" din directorul / var / named, utilizați următoarea comandă:
găsiți / var / named -type f -name * .db
Aici am înlocuit directorul pentru căutare pe / var / named.
Dacă doriți să găsiți fișiere sau dosare până la data creării lor sau ultimei accesări a acestora, utilizați opțiunea "-atime" - căutarea după data ultimei accesări a fișierului (sau crearea acestuia, dacă nimeni nu a accesat-o încă).
găsi. -type f -atime 1
Am indicat că căutăm toate fișierele din directorul curent create sau accesate ultima oară pentru ultima zi, adică mai mult de 24 de ore și mai puțin de 48 de ore în urmă. "-atime n" este considerat a fi n * 24, adică în cazul nostru 1 * 24 = 24 ore în urmă, iar echipa caută exact câte perioade de 24 de ore în urmă au fost accesate fișierul.
Dar următoarea comandă va găsi toate fișierele la care au fost accesate mai mult de 24 de spate:
găsi. -type f -atime +1
În continuare găsim toate dosarele care au fost accesate mai mult de 48 de ore în urmă:
găsi. -type d -atime +2
Toate fișierele accesate în ultimele 24 de ore:
găsi. -type f -atime -1
Prin același principiu, putem folosi cheile
"-ctime n" - până la data creării sau modificării stării unui fișier sau a unui dosar
"-mtime n" - căutați fișierele care au fost modificate (editate sau create) n * acum 24 de ore
"-min n" - fișiere sau foldere accesate acum câteva minute
"-cmin n" - fișiere sau foldere a căror stare a fost modificată (sau creată) cu câteva minute în urmă
"-mmin" - fișierele sau dosarele care au fost modificate (sau create) cu câteva minute în urmă
Puteți căuta fișiere și directoare de către proprietarul lor (utilizator) utilizând opțiunea "-user":
găsi. -name * .jpg -utilizator nimeni
Am indicat că căutăm în directorul curent pentru toate fișierele cu extensia .jpg, care nu au proprietarul nimănui
Luați în considerare situația când trebuie să executați o comandă în rezultatul căutării, de exemplu, ștergeți toate fișierele găsite. În acest caz, utilizați opțiunea "-exec". Se utilizează pentru a specifica o altă comandă care trebuie executată pe fiecare argument al rezultatului căutării:
găsi / tmp -type f -name sess * -exec rm -f <> \;
"/ Tmp" - specificați că căutăm fișiere în directorul / tmp
"-type f" - căutarea numai pentru fișierele și directoarele din rezultatele căutării nu sunt incluse
"-name sess *" - toate fișierele al căror nume începe cu cuvântul "sess"
«-execime -f <>"- executați comanda" rm -f "(ștergeți) pentru fiecare fișier
"<>"- înlocuiește lista argumentelor găsite
"\" Este sfârșitul comenzii (în acest caz, utilizarea "find" este obligatorie)
Următorul exemplu arată modul de modificare a permisiunilor pentru toate fișierele din folder:
găsi / home / nimeni / public_html -type f -exec chmod 644 <> \;
și toate folderele:
găsi / home / nimeni / public_html -type d -exec chmod 755 <> \;
Dar când se înlocuiește drepturile de folder cu această comandă, directorul public_html modifică de asemenea drepturile, deoarece directorul curent va fi inclus în rezultate, care este indicat de punctul ".". Apoi ne întoarcem:
chmod 750 public_html