Găsiți comanda în Linux (găsiți fișiere și directoare)
comanda find
este unul dintre cele mai puternice instrumente din arsenalul administratorilor de sistem Linux. Se caută fișiere și directoare într-o ierarhie director bazat pe o expresie dată de utilizator și poate efectua acțiuni specificate de utilizator pe fiecare fișier potrivit.
puteți utiliza comanda find
pentru a căuta fișiere și directoare pe baza permisiunilor, tipului, datei, proprietății, dimensiunii și multe altele., Acesta poate fi, de asemenea, combinate cu alte instrumente, cum ar fi grep
sau sed
.
găsi Comandă Sintaxă #
general sintaxa find
comanda este după cum urmează:
-
options
atribut controale tratamentul de link-uri simbolice, opțiunile de depanare, și metodă de optimizare. - atributul
path...
definește directorul de pornire sau directoarele în care find va căuta fișierele., - atributul
expression
este alcătuit din opțiuni, modele de căutare și acțiuni separate de operatori.pentru a căuta fișiere într-un director, utilizatorul care invocă comandafind
trebuie să aibă permisiuni de citire în acel director.Să aruncăm o privire la următorul exemplu:
Găsi Fișierele de Nume #
Găsirea fișierelor după nume este, probabil, cea mai comună utilizare a
find
comandă., Pentru a găsi un fișier după numele său, utilizați opțiunea-name
urmată de numele fișierului pe care îl căutați.De exemplu, pentru a căuta un fișier numit
document.pdf
în/home/linuxize
director, ar trebui să utilizați următoarea comandă:Pentru a rula un caz-insensibil căutare, schimba
-name
opțiune cu-iname
:comanda De mai sus va meci „Document.pdf”, ” DOCUMENT.pdf”..etc.,
Find Files by Extension #
căutarea fișierelor după extensie este aceeași cu căutarea fișierelor după nume. De exemplu, pentru a găsi toate fișierele care se termină cu
.log.gz
în/var/log/nginx
director, ai fi de tip:este important să menționez că trebuie să fie citat de model sau de a scăpa de asterisc
*
simbol cu backslash\
astfel încât să nu fie interpretat de shell atunci când utilizați metacaracterul.,Pentru a găsi toate fișierele care nu se potrivesc cu regex
*.log.gz
puteți folosi-not
opțiune. De exemplu, pentru a găsi toate fișierele care nu se termină cu*.log.gz
v-ar folosi:Găsi Fișierele de Tip #
Uneori s-ar putea nevoie pentru a căuta pentru anumite tipuri de fișiere, cum ar fi regulat fișierele, directoarele, sau legături simbolice. În Linux, totul este un fișier.,div>: nume pipe (FIFO)
-
s
: soclu
De exemplu, pentru a găsi toate directoarele din directorul curent de lucru , ar trebui să utilizați:
exemplu comun ar fi să recursiv schimba site-ul permisiunile de fișiere pentru 644
și director permisiuni 755
cu ajutorul chmod
command:
Găsi Fișiere de Dimensiuni #
Pentru a găsi fișiere bazate pe dimensiune, trece -size
parametru, împreună cu criteriile de mărime.,9fdb538a6b”>: 512-byte blocuri (implicit)
c
: bytesw
: doi octeți cuvintek
: KilobytesM
: MegaoctețiG
: Gigabytescomanda următoare va găsi toate fișierele de exact 1024
bytes interiorul /tmp
director:
find
comanda, de asemenea, vă permite să căutați pentru fișierele care sunt mai mari sau mai mici decât o anumită dimensiune.,
în exemplul următor, căutăm toate fișierele mai mici decât 1MB
în directorul curent de lucru. Observa minus -
simbolul dimensiunea de valoare:
Dacă doriți să căutați pentru fișiere cu o dimensiune mai mare decât 1MB
, atunci ai nevoie pentru a utiliza plus +
simbol:
puteți căuta chiar și pentru fișiere într-o gamă de dimensiuni., Următoarea comandă va găsi toate fișierele între 1
și 2MB
:
Găsi Fișierele după Data Modificării #
find
comandă puteți, de asemenea, de căutare pentru fișiere bazate pe ultima lor modificare, acces, sau schimbare.la fel ca atunci când căutați după dimensiune, utilizați simbolurile plus și minus pentru „mai mare decât” sau „mai puțin decât”.să spunem că acum câteva zile ați modificat unul dintre fișierele de configurare dovecot, dar ați uitat care dintre ele., Puteți filtra cu ușurință toate fișierele sub /etc/dovecot/conf.d
director care se termină cu .conf
și a fost modificat în ultimele cinci zile:
Aici este un alt exemplu de filtrare fișiere bazate pe modificarea data folosind -daystart
opțiune., Comanda de mai jos va lista toate fișierele din /home
directorul cu firme care au fost modificate 30
sau mai multe zile în urmă:
Găsi Fișierele de Permisiuni #
-perm
opțiune vă permite să căutați pentru fișiere bazate pe permisiunile de fișiere.,
De exemplu, pentru a găsi toate fișierele cu permisiuni de exact 775
în /var/www/html
director, le-ar folosi:
puteți prefix numeric modul cu minus -
sau slash /
.
când slash /
este folosit ca prefix, atunci cel puțin o categorie (utilizator, grup sau altele) trebuie să aibă cel puțin biții respectivi setați pentru ca un fișier să se potrivească.,
luați în considerare următoarea comandă de exemplu:
comanda de mai sus va potrivi toate fișierele cu permisiuni de citire setate pentru utilizator, grup sau alții.
Dacă minus -
este folosit ca prefix, atunci pentru ca fișierul să se potrivească, trebuie să fie setate cel puțin biții specificați., Următoarea comandă va căuta fișierele care au citit și scriere pentru proprietar și grup și sunt ușor de citit de către alți utilizatori:
Găsi Fișierele de Proprietar #
Pentru a găsi fișierele deținute de către un anumit utilizator sau grup, folosiți -user
și -group
opțiuni.
De exemplu, pentru a căuta toate fișierele și directoarele deținute de către utilizator linuxize
, ar fi:
Aici este un exemplu din lumea reală., Să presupunem că doriți să găsiți toate fișierele deținute de către utilizator www-data
și de a schimba dreptul de proprietate asupra potrivit fișiere de www-data
și nginx
:
Găsi și Șterge Fișierele #
Pentru a șterge toate de potrivire fișiere, adăugați -delete
opțiune la finalul meciului exprimare.
asigurați-vă că utilizați această opțiune numai atunci când sunteți sigur că rezultatul se potrivește cu fișierele pe care doriți să le ștergeți., Este întotdeauna o idee bună să imprimați fișierele potrivite înainte de a utiliza opțiunea -delete
.
De exemplu, pentru a șterge toate fișierele care se termină cu .temp
de la /var/log/
, le-ar folosi:
-delete
opțiune cu prudență extremă. Comanda find
este evaluată ca expresie și dacă adăugați mai întâi opțiunea -delete
, comanda va șterge totul sub punctele de pornire pe care le-ați specificat.,atunci Când vine vorba de directoare, find
poate șterge doar directoarele goale, la fel ca rmdir
.
concluzie #
v-am arătat cum să utilizați comanda find
cu diferite opțiuni și criterii.acest articol ar trebui să vă ofere o înțelegere fundamentală a modului de localizare a fișierelor pe sistemele Linux. De asemenea, puteți vizita pagina man find
și puteți citi despre toate celelalte opțiuni puternice ale comenzii find
.