Cum se utilizează comanda find. Cum să găsiți fișiere în Linux folosind comanda find

Probabil că sunteți familiarizat cu următoarea problemă: există un fișier și nu vă amintiți unde l-ați pus.

Comanda Find este utilă în acest caz. Cum îl folosesc? Desigur, acest utilitar vine cu o pagină mare de manual, dar vom acoperi câteva cazuri tipice. Răsfoiți arborele directorului începând cu cel curent și găsiți fișierul lostfile.txt:

Dacă căutați într-un copac mare de directoare, comanda find poate fi destul de lentă. Uneori este mai convenabil să folosiți comanda de localizare. Nu caută fișierul direct în sistemul de fișiere, ci caută în baza de date. Această metodă este mult mai rapidă, dar baza de date poate deveni depășită. În unele distribuții, această bază de date este modificată în fiecare seară. Puteți rula manual comanda updatedb din când în când pentru a o modifica. localizați aspectele pentru șiruri de caractere:

Numărul de erori de ortografie permise depinde de lungimea numelui fișierului, dar poate fi setat cu opțiunea -t. Pentru a rezolva maximum 2 erori și pentru a utiliza un wildcard, trebuie doar să tastați:

Prezentare generală a arborelui directorului

Uneori este necesar să obțineți o imagine de ansamblu a unui arbore de directoare. De exemplu, ați primit un CD-ROM nou și ați dori să știți ce este pe el. Puteți folosi doar ls - R. Personal, prefer una dintre următoarele pentru lizibilitate. urmând căi... Tree (sunsite.unc.edu/pub/Linux/utils/file/tree-1.2.tgz) afișează arborele directorului ca o diagramă.

Sau folosește o descoperire veche bună. În versiunea Gnu a find care vine de obicei cu Linux, este posibil să schimbați formatul de ieșire pentru a afișa, de exemplu, numele fișierului și dimensiunea acestuia:

Puteți folosi o mică rutină perl care funcționează cu comanda ls pentru a face acest lucru. Poate fi descărcat de aici: lsperl.gz. Există multe alte utilitare de navigare în arborele de directoare disponibile, dar acestea sunt suficiente pentru majoritatea cazurilor.

Căutați fișiere după conținut (căutați șiruri de text în fișiere).

Utilitățile standard pentru găsirea șirurilor de text în fișiere sunt grep / egrep pentru căutările de expresii regulate și fgrep pentru șirurile literale. Pentru a căuta o expresie în toate fișierele din directorul curent, pur și simplu tastați:

Dacă vă este greu să vă amintiți aceste comenzi lungi, utilizați un mic script care poate fi descărcat de aici: grepfind.gz. Scriptul elimină, de asemenea, caractere neprimabile din șirul de căutare, astfel încât să nu ajungeți accidental la un binar ca urmare a unei căutări egrep.

Foarte program interesant căutare - agrep. Agrep funcționează la fel ca egrep, dar permite căutările scrise greșit. Pentru a căuta o expresie și a rezolva maximum 2 erori de ortografie, tastați:

După aceea, puteți căuta șirul în toate fișierele care au fost pre-indexate

glimpse -i -2 "căutare exprission"

glimpse este, de asemenea, greșit de ortografiat (cum ar fi agrep) și -2 indică faptul că sunt permise două erori. glimpse este disponibil la

    Găsiți fișierul după numele său. Astfel de cea mai simplă căutare se efectuează folosind utilitarul de căutare. Comanda de mai jos va căuta un fișier în directorul curent și în toate subdirectoarele sale.

    găsi -iname "nume de fișier"

    • Introduceți -iname în loc de -name pentru a ignora majuscule și minuscule în numele de fișier introdus. Comanda -name este sensibilă la majuscule și minuscule.
  1. Începeți să căutați în directorul rădăcină. Pentru a rula o căutare la nivel de sistem, adăugați / modificatorul la interogarea dvs. În acest caz, comanda find va căuta fișierul în toate directoarele, începând de la rădăcină.

    găsi / -nume "nume de fișier"

    • Puteți începe să căutați într-un anumit director; pentru a face acest lucru, înlocuiți / cu calea către director, de exemplu, / home / max.
    • Poate fi utilizat. în loc de / pentru a căuta fișierul numai în directorul curent și subdirectoarele sale.
  2. Folosiți un simbol de generalizare.* pentru a găsi fișiere al căror nume se potrivește cu partea cererii. Puteți utiliza caracterul wildcard * pentru a găsi un fișier al cărui nume complet este necunoscut sau pentru a găsi toate fișierele cu o anumită extensie.

    find / home / max -iname "* .conf"

    • Această comandă va găsi toate fișierele .conf din folderul utilizator Max (și subdirectoarele sale).
    • Utilizați această comandă pentru a găsi toate fișierele care se potrivesc cu o parte a interogării. De exemplu, dacă aveți pe computer multe fișiere legate de WikiHow, găsiți toate fișierele tastând „* wiki *”.
  3. Faceți mai ușoară gestionarea rezultatelor căutării. Dacă există prea multe rezultate de căutare, este dificil de găsit printre ele fișierul dorit... Folosiți simbolul | pentru a filtra rezultatele căutării cu mai puțin. Acest lucru va facilita vizualizarea și filtrarea rezultatelor căutării.

    find / home / max -iname "* .conf" | Mai puțin

    Găsiți elemente specifice. Utilizați modificatori pentru a afișa numai elemente specifice în rezultatele căutării. Puteți căuta fișiere obișnuite (f), directoare (d), legături simbolice (l), dispozitive I / O cu caracter (c) și dispozitive de blocare (b).

    găsi / -tip f -nume "fișier"

  4. Filtrați rezultatele căutării în funcție de dimensiunea fișierului. Dacă aveți multe fișiere cu nume similare pe computer, dar știți dimensiunea fișierului pe care îl căutați, filtrați rezultatele căutării în funcție de dimensiunea fișierului.

    find / -size + 50M -iname "file name"

    • Această comandă va găsi toate fișierele mai mari de 50 MB. Utilizați modificatorul + sau - pentru a indica o creștere sau scădere a dimensiunii. Dacă nu există modificator + sau -, comanda va găsi fișiere care au exact aceeași dimensiune ca dimensiunea specificată.
    • Rezultatele căutării pot fi filtrate după octeți (c), kilobiți (k), megaocteți (M), gigaocteți (G) sau blocuri de 512 octeți (b). Rețineți că modificatorii afișați sunt sensibili la majuscule și minuscule.
  5. Utilizare operatori logici(operatori booleani) pentru a combina filtrele de căutare. Puteți utiliza operatorii -și, sau, sau nu, pentru a combina diferite interogări de căutareîntr-o singură cerere.

    find / travelphotos -type f -size + 200k -not -iname "* 2015 *"

    • Această comandă va găsi fișiere în folderul „Travelphotos” care sunt mai mari de 200 KB și care nu au numărul 2015 în numele lor.

Aceasta este pagina de bun venit implicită utilizată pentru a testa funcționarea corectă a serverului Apache2 după instalarea pe sistemele Ubuntu. Se bazează pe pagina echivalentă de pe Debian, din care derivă ambalajul Ubuntu Apache. Dacă puteți citi această pagină, înseamnă că serverul HTTP Apache instalat pe acest site funcționează corect. Tu ar trebui înlocuiți acest fișier(aflat la /var/www/html/index.html) înainte de a continua să vă operați serverul HTTP.

Dacă sunteți un utilizator normal al acestui site web și nu știți despre ce este această pagină, acest lucru înseamnă probabil că site-ul este momentan indisponibil din cauza întreținerii. Dacă problema persistă, vă rugăm să contactați administratorul site-ului.

Prezentare generală a configurației

Configurarea implicită Apache2 a Ubuntu este diferită de configurația implicită din amonte și este împărțită în mai multe fișiere optimizate pentru interacțiunea cu instrumentele Ubuntu. Sistemul de configurare este complet documentat în /usr/share/doc/apache2/README.Debian.gz... Consultați acest document pentru documentația completă. Documentația pentru serverul web în sine poate fi găsită accesând manualul dacă pachetul apache2-doc a fost instalat pe acest server.

Aspectul de configurare pentru o instalare a serverului web Apache2 pe sistemele Ubuntu este după cum urmează:

/ etc / apache2 / | - apache2.conf | `- ports.conf | - mods-enabled | | - * .load | `- * .conf | - conf-enabled | `- * .conf | - sites-enabled | `- * .conf

  • apache2.conf este fișierul principal de configurare. Pune piesele împreună, incluzând toate fișierele de configurare rămase la pornirea serverului web.
  • ports.conf este întotdeauna inclus din fișierul principal de configurare. Este folosit pentru a determina porturile de ascultare pentru conexiunile primite, iar acest fișier poate fi personalizat oricând.
  • Fișierele de configurare din directorele mods-enabled /, conf-enabled / și sites-enabled / conțin fragmente de configurație particulare care gestionează module, fragmente de configurație globală, respectiv configurații de gazdă virtuală.
  • Acestea sunt activate prin legarea simbolică a fișierelor de configurare disponibile de la partenerii lor * -disponibili / omologi. Acestea ar trebui gestionate folosind ajutoarele noastre a2enmod, a2dismod, a2ensite, a2dissite și a2enconf, a2disconf. Consultați paginile lor respective pentru informații detaliate.
  • Binarul se numește apache2. Datorită utilizării variabilelor de mediu, în configurația implicită, apache2 trebuie pornit / oprit cu /etc/init.d/apache2 sau apache2ctl. Apelarea directă / usr / bin / apache2 nu va funcționa cu configurația implicită.

Rădăcini document

În mod implicit, Ubuntu nu permite accesul prin browserul web la orice fișier în afară de cele localizate în / var / www, directoare public_html (când este activat) și / usr / share (pentru aplicații web). Dacă site-ul dvs. folosește o rădăcină de document web situată în altă parte (cum ar fi în / srv), poate fi necesar să listați alb directorul rădăcină a documentului în /etc/apache2/apache2.conf.

Rădăcina implicită a documentului Ubuntu este / var / www / html. Vă puteți crea propriile gazde virtuale sub / var / www. Acest lucru este diferit de versiunile anterioare, care asigură o securitate mai bună la ieșire din cutie.

Probleme de raportare

Vă rugăm să utilizați instrumentul ubuntu-bug pentru a raporta erori din pachetul Apache2 cu Ubuntu. Cu toate acestea, verificați înainte de a raporta o nouă eroare.

Vă rugăm să raportați erorile specifice modulelor (cum ar fi PHP și altele) pachetelor respective, nu serverului web în sine.

Fără îndoială, când lucrezi cu Linux, uneori devine necesar căutare fișiere cu anumite caracteristici. Aceste caracteristici pot fi dimensiunea sau tipul fișierului, permisiuni și multe altele.


Comandă Linux găsi, ajută foarte mult să facă față căutare fișiere după diverse criterii.


Astăzi vom analiza găsiți fișiere în Linuxși dați principalele opțiuni de comandă găsi pe care îl poți aplica în munca ta.

Formatul comenzii găsi:

găsicale-Opțiuni

Unde cale este directorul în care să căutați. Următoarele valori pot fi specificate ca cale:

. - căutare în directorul curent;

/ - căutare din directorul rădăcină;

~ - căutați în directorul principal.

În ceea ce privește opțiunile, există o listă mult mai mare, pe care este imperativ să o citiți cu atenție (acest lucru va ajuta foarte mult în viitor!). Asa de, opțiuni de bază pentru comenzi de căutare:

-Nume- căutați fișiere după nume folosind șablonul dat;

-utilizator- căutare fișiere aparținând utilizatorului specificat;

-grup- căutați fișiere aparținând grupului specificat;

-permanent- căutați fișiere cu modul de acces specificat;

-tip- căutați fișiere de un anumit tip. Există și suficiente tipuri:

  • b - fișier bloc special;
  • d - director;
  • c - fișier de caractere speciale;
  • f - fișier obișnuit;
  • l - legătură simbolică;
  • p - țeavă numită;
  • s - soclu.
-mărimea n- căutare fișiere cu dimensiunea n unități;

-mtime -n + n- căutați fișiere, al căror conținut s-a schimbat cu mai puțin de (-) sau mai mult de (+) zile în urmă.

Luați în considerare unele exemple de utilizare a comenzii găsi :

Cea mai des utilizată opțiune este -Nume care caută fișiere după nume.

Exemple cu opțiunea -name :

$ find / mnt / usb -name "* .mp3" -print

va căuta toate fișierele (indicate prin semnul *) cu extensia .mp3 pe un dispozitiv USB montat în directorul / mnt / usb.

$ găsiți ~ -name "test *" -print

va afișa o listă a fișierelor din directorul de pornire începând cu test.

Dacă trebuie să găsiți fișiere care încep cu anumite litere (de exemplu, de la a la j), atunci va fi convenabil să folosiți expresii regulate aici, care sunt extrem de convenabile de utilizat:

$ find / -name "*" -print

Comanda de mai sus va găsi toate fișierele din sistem care încep cu literele de la a la j.

Căutați fișiere cu moduri de acces specifice

Dacă trebuie să găsiți fișiere care au anumite moduri de acces, opțiunea vă va ajuta -permanent, ceea ce va ajuta cu ușurință în acest sens.

De exemplu, să căutăm fișiere cu modul de acces 775 (proprietarul și grupul au drepturi depline, iar alți utilizatori au restricții de scriere) situate în directorul curent:

$ găsi. -perm 775 -print

Căutând cu găsi cu opțiunea -perm, puteți utiliza un alt mod - puteți pune o cratimă în fața valorii modului și apoi se va căuta fișierele pentru care sunt setați toți biții de permisiune specificați. Mai mult, restul de biți sunt ignorați în acest caz.

De exemplu, să găsim fișiere la care utilizatorii grupului au acces complet:

$ găsi. -perm -070 -print

În loc de cratimă, puteți specifica un semn plus. În acest caz, va fi efectuată o căutare a fișierelor care au cel puțin unul dintre biții de permisiune specificați. Restul biților sunt ignorați.

Căutați fișiere ale unui anumit utilizator sau grup

Găsirea fișierelor pentru un anumit utilizator este extrem de simplu de implementat. Pentru a face acest lucru, rulați doar comanda:

$ find / -user admin -print

Comanda de mai sus va produce căutare fișiere pe sistemul deținut de administratorul utilizatorului.

Pentru a găsi fișiere aparținând unui anumit grup (de exemplu manageri), rulați comanda:

$ find / -grup manageri -print

Pentru a căuta fișiere ale unor utilizatori sau grupuri inexistente, puteți utiliza opțiunile -nouserși -nogrup:

$ find / -nouser -print

$ find / -nogroup -print

Căutați fișiere de un anumit tip

Una dintre caracteristicile utile ale echipei găsi, este capacitatea de a căuta fișiere de un anumit tip. Luați în considerare cazurile de utilizare ale opțiunii -tip:

Căutarea de legături simbolice în directorul / etc:

$ găsi / etc -tip l -print

Afișați o listă de directoare prezente în directorul / mnt / raid

$ găsi / mnt / raid -tip d -print

Căutați fișiere de o anumită dimensiune

Opțiune -mărimea vă permite să căutați fișiere de o anumită dimensiune și arată astfel când este executat:

$ găsi. -mărime 2000k -print

Comanda de mai sus va găsi și afișa pe ecran fișierele de 2 megabyte situate în directorul curent. Dacă, de exemplu, trebuie să găsiți fișiere cu dimensiuni mai mici de 500 kilobyte, atunci comanda va fi după cum urmează:

$ găsi. -mărime -500k -print

Dacă trebuie să găsiți fișiere mai mari de 600 megabyte, utilizați comanda:

$ găsi / -size + 600M -print

Găsirea fișierelor utilizând opțiunea -mtime

Opțiune -timp vă va permite să găsiți fișiere care s-au schimbat pe o perioadă de timp.

De exemplu, ne confruntăm cu sarcina de a găsi fișiere aflate în directorul / mnt / raid / upload și modificate în ultimele 5 zile. Comanda ne va ajuta în acest sens:

$ find / mnt / raid / upload -mtime -5 -print

Dacă avem nevoie de opus, de exemplu, pentru a găsi fișiere care nu s-au schimbat de o săptămână, utilizați comanda:

$ găsiți / mnt / raid / upload -7 -print

Comanda găsi este extrem de instrument la îndemână pentru căutare fișiereși poate fi folosit și pentru căutare fișiere pe discurile NFS (sisteme de fișiere de rețea), dar în acest caz este necesar să se țină cont de faptul că va dura mult mai mult timp pentru a căuta ceva pe NFS decât pe discurile locale.

În acest articol, am acoperit doar opțiunile de bază ale comenzii find care vă vor ajuta în munca dvs. Folosiți ceea ce este convenabil și nu vă faceți griji cu privire la fleacuri!

Necesitatea de a căuta fișiere poate apărea în aproape fiecare sistem de operare care vă permite să lucrați cu Sistemul de fișiere... Un exemplu clasic pentru noi este sistem de operare Linux, pe care îl vom folosi în modul consolă. Să aruncăm o privire la posibilitățile de căutare a fișierelor în sistem utilizând consola. Pentru a găsi fișiere pe un sistem Linux, există comanda find, care permite o căutare destul de flexibilă, permițându-vă să specificați criterii de căutare suplimentare. Să luăm în considerare capacitățile acestei comenzi în detaliu.

Sintaxa comenzii find este:

Găsiți cale - opțiuni

Calea este directorul în care doriți să căutați. De exemplu, acestea pot fi valori de următoarea formă:
... - directorul curent
/ - directorul rădăcină
~ - directorul de start

După specificarea căii, așa sunt indicate opțiunile de căutare. Pare confuz, dar în realitate nu există dificultăți.

Opțiuni principale:
-Nume- căutare după nume, este setat un șablon de căutare;
-utilizator- căutarea fișierelor aparținând unui anumit utilizator;
-grup- căutare fișiere aparținând unui anumit grup;
-permanent- căutare fișiere după modul de acces;
-tip- căutare fișiere după tip, listă de tipuri:

  • b- fișier bloc special;
  • d- director;
  • c- fișier de caractere speciale;
  • f- dosar regulat;
  • l- legătură simbolică;
  • p- țeavă numită;
  • s- priză.

-mărimea n- căutare fișiere cu dimensiunea n unități;
-mtime -n + n- căutați fișiere după data modificării, cu mai puțin de (-) sau mai mult (+) zile în urmă.

Să încercăm să căutăm fișiere simulând diferite situații.
Să găsim fișierele de pe un dispozitiv detașabil conectat la USB și pre-montat pe sistem.

Căutați fișiere după extensie:

$ find / mnt / usb -name "* .mp3" -print

Ca urmare a executării acestei comenzi, directorul va fi căutat / mnt / usb Este directorul în care este montat dispozitivul. Căutarea va fi efectuată în toate fișierele (*) cu extensia .mp3.
Masca de căutare poate fi modificată destul de flexibil, de exemplu, puteți seta un cuvânt cheie care pornește numele fișierului și să îl căutați.

Căutați fișiere pornind cuvântul cheie:

$ find ~ -name "config *" –print

Aceasta va afișa o listă a fișierelor găsite începând cu cuvânt cheie config.
Una dintre puncte forte comenzile sunt capacitatea de a căuta conform unei expresii regulate. Pentru demonstrație, să căutăm fișiere care încep cu litere latine de la „a” la „j”.

Căutați fișiere utilizând un model de expresie regulată:

$ find / -name "*" –print

Conform șablonului specificat, toate fișierele din sistem începând cu litere de la „a” la „j” vor fi căutate.

Oricine este mai mult sau mai puțin familiarizat cu sistemele Linux știe că modurile de acces la fișiere sunt foarte importante. Uneori trebuie să găsiți fișiere care au permisiuni specifice, în aceste scopuri puteți utiliza căutarea cu opțiunea -Permanent.

Căutați fișiere cu modul de acces 755:

$ gaseste. -perm 775 –print

O căutare mai flexibilă se poate face în același mod. Să găsim fișiere după grupul de utilizatori care au acces complet.

Căutați fișiere cu drepturi pentru un grup:

$ gaseste. -perm -070 –print

Semnul cratimă poate fi înlocuit cu un semn plus, acest lucru vă va permite să căutați fișiere care au cel puțin unul dintre biții de permisiune specificați, restul de biți vor fi ignorați.

În exemplul următor, luați în considerare găsirea fișierelor deținute de un anumit utilizator sau grup.

Căutați fișiere ale unui anumit utilizator:

$ find / -user admin –print

Căutarea va găsi fișiere aparținând utilizatorului admin.

Căutați fișiere aparținând unui anumit grup de utilizatori:

$ find / -group roboți –print

Fișierele care aparțin grupului de utilizatori vor fi găsite roboții... În plus, puteți căuta fișiere deținute de utilizatori sau grupuri inexistente:

$ find / -nouser –print $ find / -nogroup –print

Capacitatea de a căuta anumite tipuri de fișiere este, de asemenea, o caracteristică importantă. De exemplu, dacă este nevoie să găsiți toate linkurile simbolice într-un anumit director.

Găsirea linkurilor simbolice:

$ find / etc -type l –print

Căutarea se va face în directorul / etc, în care vor fi căutate toate linkurile simbolice.

Uneori este necesar să vizualizați lista subdirectoarelor dintr-un director, pentru astfel de sarcini există următoarea comandă.

Răsfoiți subdirectoarele dintr-un director:

$ find / mnt / usb -type d –print

Ecranul va afișa o listă de directoare prezente în director / mnt / usb... Acum să trecem la următoarea opțiune, aceasta este capacitatea de a căuta fișiere de o anumită dimensiune.

Căutați fișiere după dimensiune:

$ gaseste. -mărimea 2000k –print

Căutarea va fi efectuată pentru fișiere cu o dimensiune de 2000 kilobyte, dimensiunile pot fi specificate în megaocteți, pentru aceasta, în loc de litera „k”, ar trebui să specificați litera „M”.

Ca exemplu următor, vom folosi capacitatea de a căuta fișiere după timpul modificării lor. În aceste scopuri, vom folosi opțiunea –Timpul.

Căutați fișiere modificate în ultimele 2 zile:

$ find / var / www / html -mtime +2 –print

Căutarea va fi efectuată în director / var / www / htmlși va căuta fișiere care s-au schimbat în ultimele 2 zile. Poate una dintre cele mai importante și convenabile opțiuni de căutare. De asemenea, puteți căuta după data modificării cu condiția opusă. Să încercăm să găsim fișiere în director care nu s-au schimbat de 5 zile.

Căutați fișiere care nu s-au schimbat timp de 5 zile:

$ find / var / www / html -5 –print

Asta este tot deocamdată, sper că aceste exemple te-au ajutat să-ți dai seama de această comandă. Confortul său este clar prezentat și nu va fi de prisos să știți despre capacitățile sale, mai ales dacă veți lucra cu Sistem Linux... Abilitățile de căutare competentă a fișierelor vă economisesc semnificativ timpul personal și, după cum știți, timpul este neprețuit. Mult succes în munca ta!