Cum să găsiți fișiere în Linux folosind linia de comandă

find este o comandă pentru filtrarea recursivă a obiectelor din sistemul de fișiere bazată pe un mecanism condițional simplu. Utilizați find pentru a căuta un fișier sau un director în sistemul dvs. de fișiere. Folosind steagul -exec, fișierele pot fi găsite și imediatprocesate în cadrul aceleiași comenzi.,

Find Linux Files by Name or Extension

Use find from the command line to locate a specific file by name or extension., Următorul exemplu de căutări pentru *.err fișiere în /home/username/ director și toate subdirectoarele:

find /home/username/ -name "*.err"

ar trebui să vedeți o ieșire similară în consolă:

 /home/username/example.errThe matching file in the /home/username/ directory is "example.err"

Comune Linux Găsi Comenzi și Sintaxa

find comanda, de obicei, are următoarea formă:

find options starting/path expression
  • options atribut controlează comportamentul și metodă de optimizare a find proces.,
  • starting/path atribut definește nivelul de top directorul unde find începe filtrarea.
  • expression atribut controlează testele care caută ierarhia director pentru a produce ieșire.

găsiți un fișier în Linux folosind numele fișierului

pentru a găsi un fișier folosind numele fișierului, utilizați sintaxa find -name filename. Omiterea căii caută fișierul pe întregul disc., De exemplu, puteți găsi un fișier numit example.err situat în /home/username director cu următoarea comandă:

find -name example.err

ar trebui să vedeți o ieșire similară:

 ./username/example.err

Găsi un Fișier în Directorul Curent Folosind Comanda

uită-te la exemplul structura de directoare și fișiere. Acestea sunt menționate în exemplele acestui ghid.,vrei pentru a găsi fișierul example.err în directorul sau oricare dintre subdirectoarele sale, puteți emite următoarea comandă:

find . -name example.err

ieșire seamănă cu următorul:

 ./example.err./directory_1/example.err

ieșire reflectă directory_1 structura de directoare:

 ├── directory_1│ ├── subdirectory_1│ │ └── example.err│ └── example.err

Găsi Fișierele de Imagine în Linux Folosind Linia de Comanda

Corelarea structura de fișiere în secțiunea anterioară, există o imagine pe nume image01.png care se află la rădăcina (/)s a structurii de directoare.,

Pentru a găsi fișierul image01.png, executați următoarele find comanda care localizează toate .png fișierele stocate în interiorul / director.

find -name *.png

ar trebui să vedeți o ieșire similară:

 ./image01.png

Modificați tipul de fișier imagine și căutați pentru orice .jpg fișiere în directorul rădăcină (/):

find -name *.jpg

ieșire seamănă exemplu., Consultați structura de directoare de exemplu din secțiunea anterioară pentru a vizualiza locația fișierului.

 ./web_files/unnamed.jpg

Găsi un Fișier Gol în Directorul Dvs. Folosind Linia de Comanda

Pentru a găsi un fișier gol în directorul dvs. folosind linia de comandă, emite următoarea comandă:

find . -type f -empty

Dacă nu de ieșire este returnat, atunci nu există un fișier gol în directorul curent.

Opțiuni și Optimizări pentru Găsirea Fișierelor în Linux Folosind Linia de Comanda

configurare implicite pentru find ignoressymbolic link-uri., Dacă vrei find pentru a urmări și de a reveni link-uri simbolice, se adaugă -L opțiunea de a comanda, așa cum se arată mai jos:

find -O3 -L /var/www/ -name "*.html"

Această comandă permite optimizarea maximă de nivel (-O3) și vă permite find să urmați link-uri simbolice (-L). find căutări întregul arbore de directoare de sub /var/www/ pentru fișierele care se termină cu .html.,

find optimizează strategia de filtrare pentru a crește performanța. Trei selectabile de utilizator nivele de optimizare sunt specificate ca -O1, -O2 și -O3. -O1 optimizare este implicit și forțele find pentru a filtra pe baza fișierului înainte de a rula toate celelalte teste.,

Optimizarea la -O2 nivel prioritizează filename filtre, ca în -O1, și apoi se execută toate de tip fișier de filtrare înainte de a continua cu altele mai mari consumatoare de resurse condiții. Nivelul -O3 optimizare permite find pentru a efectua cele mai severe de optimizare și reordona toate testele pe baza lor relative de cheltuieli și probabilitatea lor de succes.,

Command Description
-O1 Filter based on filename first (default).
-O2 File name first, then file-type.,
-O3 Permite find automat re-comandă de căutare bazate pe utilizarea eficientă a resurselor și probabilitatea. de succes
-maxdepth X Căutare directorul curent precum și toate sub-directoarele X niveluri de adâncime.
-iname Căutare fără a ține seama de textul caz.,
-not Return only results that do not match the test case.
-type f Search for files.
-type d Search for directories.,

Găsi Fișiere în Linux prin Modificarea Timp Folosind Linia de Comanda

find comanda poate filtra un director ierarhie bazată pe când un fișier a fost modificat ultima dată., De exemplu, următoarea comandă găsește orice fișier cu .err extensia care a fost modificat în ultimele 7 zile:

find / -name "*err" -mtime -7

exemplu de comandă returnează următorul rezultat:

Folosiți Grep pentru a Găsi Fișiere în Linux Folosind Linia de Comanda

find comanda este doar capabil de a filtra directorul ierarhie bazată pe un fișier numele și metadate. Dacă trebuie să căutați pe baza conținutului fișierului, utilizați un instrument cum ar figrep., Luați în considerare următorul exemplu:

find . -type f -exec grep "test" '{}' \; -print

Aceasta comanda căutări fiecare obiect în directorul curent ierarhie (.) care este un fișier (-type f) și apoi se execută comanda grep "test" pentru fiecare fișier care îndeplinește condițiile. Fișierele care se potrivesc sunt tipărite pe ecran (-print). Acolade buclat ({}) Sunt un substituent pentru rezultatele find meci., {} sunt închise în ghilimele simple (') pentru a evita predarea grep un malformat filename. -exec comanda este terminată cu un punct și virgulă (;), care ar fi scăpat (\;) pentru a evita interpretarea de către shell.

fișierul folosit în exemplu (example.err) are text în interiorul acestuia care spune”test”., Când executați comanda exemplu, vedeți o ieșire similară:

Grep a identificat fiecare fișier din Directorul de lucru curent care conține șirul „test”.,

Nota

Înainte find comandă punerea în aplicare a -exec opțiune, care ar putea genera o ieșire similară cu exemplul de mai sus folosind xargs command:

find . -type f -print | xargs grep "test"

Proces și pentru a Găsi Fișierele Folosind Comanda find în Linux

-exec opțiune execută comenzile împotriva fiecare obiect care se potrivește find expresie., Luați în considerare următorul exemplu:

find . -name "example.err" -exec chmod o+r '{}' \;

Acest filtrele fiecare obiect în ierarhia actuală (.) pentru fișiere numit rc.conf și se execută chmod o+r comandă pentru a modifica permisiunile de fișiere de find comandă rezultatele.

comanda exemplu rulează și execută opțiunea -execdin directorul rădăcină al procesului find. Utilizați -execdir pentru a executa comanda specificată în directorul în care se află meciul., Acest lucru poate atenua problemele de securitate și poate produce performanțe mai bune pentru unele operațiuni.

-exec sau -execdir opțiuni rula fără alte solicitări. Dacă preferați să vi se solicite, înainte de se iau măsuri, înlocuiți -exec cu -ok sau -execdir cu -okdir.

cum să găsiți și să ștergeți fișierele folosind linia de comandă Linux

atenție

utilizați această opțiune cu precauție extremă.,

Adăugați opțiunea -delete la sfârșitul unui meci de exprimare pentru a șterge toate fișierele care se potrivesc. Utilizați această opțiune atunci când sunteți sigur că rezultatele se potrivesc numai cu fișierele pe care doriți să le ștergeți.

În exemplul de mai jos, find recursiv localizează toate fișierele într-o ierarhie pornind de la directorul curent și șterge toate fișierele care se termină cu .err extensie:

find . -name "*.err" -delete

Încă mai am câteva întrebări?,

Alăturați-vă comunității noastre și postați întrebările dvs. pentru alți entuziaști Linode și Linux pentru a vă ajuta.

întrebări similare:

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *