Metode de plată Abuse

Comanda find în Linux

04.03.2023, 02:43

Comanda find în Linux este utilizată pentru a căuta fișiere și directoare în directoarele specificate pe baza diferitelor criterii. Această comandă este una dintre cele mai puternice și comune utilitare din Linux.

Formatul comenzii

Formatul de bază al comenzii find este următorul:

find [path] [expression]

unde:

path este calea către directorul în care se caută fișiere (implicit, find caută în directorul curent și în toate subdirectoarele acestuia);

expression este o expresie care definește criteriile de căutare a fișierelor.

Următoarele sunt câteva dintre cele mai comune criterii de căutare a fișierelor care pot fi utilizate într-o expresie a comenzii find:

-name: caută fișiere după nume. De exemplu:

find /home/user -name myfile.txt

-type: caută fișiere de un anumit tip (de exemplu, f pentru fișiere regulate sau d pentru directoare). De exemplu:

find /home/user -type f

-size: căutarea fișierelor în funcție de dimensiune. De exemplu:

find /home/user -size +10M

-mtime: căutarea fișierelor după ora ultimei modificări. De exemplu:

find /home/user -mtime -7

-user and -group: caută fișiere după proprietar și grup. De exemplu:

find /home/user -user bob -group users

Puteți utiliza operatorii logici -and, -or și -not pentru a combina mai multe criterii de căutare într-o singură expresie.

De exemplu, următoarea comandă va găsi toate fișierele din directorul /home/user care au fost modificate în ultimele 7 zile și sunt mai mari de 10 megabytes:

find /home/user -type f -mtime -7 -size +10M

Comanda find vă permite, de asemenea, să efectuați diverse acțiuni asupra fișierelor găsite utilizând opțiunea -exec. De exemplu, puteți șterge toate fișierele care au fost modificate cu mai mult de 30 de zile în urmă utilizând următoarea comandă:

find /home/user -type f -mtime +30 -exec rm {} ;

Aici, opțiunea -exec execută comanda rm pentru fiecare fișier găsit și utilizează {} pentru a înlocui numele fișierului în comandă.

Comanda find este un instrument puternic pentru a găsi fișiere și directoare în Linux, care poate fi utilizat pentru a efectua diverse sarcini legate de gestionare.

Opțiuni suplimentare

Comanda find acceptă multe alte opțiuni care pot fi utilizate pentru a găsi fișiere mai precis:

-iname: caută fișiere după nume, fără a ține cont de majusculele caracterelor. De exemplu:

find /home/user -iname myfile.txt

-regex: caută fișiere ale căror nume corespund unei expresii regulate date. De exemplu:

find /home/user -regex ".*.txt$"

-maxdepth și -mindepth: limitează adâncimea de căutare a fișierelor în subdirectoare. De exemplu:

find /home/user -maxdepth 2 -type f

-prune: exclude anumite directoare din căutare. De exemplu:

find /home/user -path /home/user/excluded -prune -o -type f -print

-print: afișează lista fișierelor găsite la ieșirea standard. De exemplu:

find /home/user -type f -print

find acceptă, de asemenea, căutarea fișierelor după diverse atribute, cum ar fi permisiuni, atribute de fișier, etichete SELinux și altele. Mai multe informații despre aceste opțiuni pot fi găsite în documentația comenzii find.

Comanda poate căuta fișiere și directoare în întregul sistem de fișiere, ceea ce poate necesita mult timp și resurse. Prin urmare, este important să fiți atenți atunci când utilizați această comandă și să vă asigurați că criteriile de căutare sunt setate corect pentru a evita găsirea de fișiere inutile sau erori în sistem.