Folosiți găsiți și localizați pentru a găsi fișiere pe serverul linux

Plasarea serverelor în centre de date fiabile din Europa. Deschideți serverul VPS / VDS bazat pe cloud pe SSD-uri rapide în 1 minut!

Cel mai bun Gazduire:
- protejează datele de accesul nedorit într-un centru de date european protejat
- va accepta plata cel puțin în taxe.
- vă va permite să vă distribuiți distribuția

- protecția împotriva atacurilor DDos
- copie de rezervă gratuită
- Uptime 99.9999%
- Centrul de date - TIER III
- furnizor - TIER I

Sprijinim în limba rusă 24/7/365 Lucrăm cu persoane juridice și persoane fizice. Acum aveți nevoie de 24 nuclee și 72 GB de memorie RAM. Vă rog!

Tarifele noastre avantajoase vor dovedi că nu ați știut încă ieftinul de găzduire!

Minute: selectați configurația, plătiți și CMS de pe VPS este gata.
Banii înapoi - 30 de zile!

Carduri bancare, e-valută, prin intermediul terminalelor Qiwi, Webmoney, PayPal, Novoplat etc.

Puneți o întrebare la sprijinul 24/7/365

Găsiți răspunsuri în baza noastră de date și cunoașteți recomandările

Începând să lucreze cu serverul Linux, utilizatorii întâmpină adesea problema găsirii fișierelor necesare.

Acest ghid discută utilizarea comenzii corespunzătoare de căutare, care vă permite să căutați fișiere utilizând diferite filtre și parametri. În plus, acest ghid acoperă pe scurt comanda de localizare, care poate fi utilizată pentru a căuta comenzi.

Căutați după numele fișierului

Desigur, căutarea unui fișier după nume este cel mai evident mod de a găsi fișierul de care aveți nevoie.

Pentru aceasta, folosiți:

găsi-nume "interogare"

Această comandă este case-sensitive (adică, ea tratează fișierele denumite fișier și Fișier ca două fișiere diferite).

Pentru a găsi un fișier după nume fără sensibilitate la caz, tastați:

găsi -iname "interogare"

Pentru a găsi fișiere care nu se potrivesc cu un anumit tipar, trebuie să inversați căutarea utilizând metacaractele -not sau "!". Rețineți că atunci când utilizați "!", Trebuie să evitați caracterele astfel încât shell-ul bash să nu interpreteze "!" Chiar înainte de executarea comenzii find.

găsi -not -name "query_to_avoid"

găsi \! -name "query_to_avoid"

Căutați după tipul fișierului

Cu opțiunea "-type", puteți specifica tipul fișierului necesar. Acest lucru funcționează astfel:

găsiți interogare tip-tip type_descriptor

Iată o listă de descriptori comuni cu care puteți specifica tipul de fișier:

De exemplu, pentru a găsi toate dispozitivele de caractere din sistem, trebuie să executați comanda:

find / -type c
/ dev / parport0
/ dev / snd / seq
/ dev / snd / cronometru
/ dev / autofs
/ dev / cpu / microcod
/ dev / vcsa7
/ dev / vcs7
/ dev / vcsa6
/ dev / vcs6
/ dev / vcsa5
/ dev / vcs5
/ dev / vcsa4
.

Pentru a găsi toate fișierele care se termină în .conf, utilizați:

găsi / -type f -name "* .conf"
/var/lib/ucf/cache/:etc:rsyslog.d:50-default.conf
/usr/share/base-files/nsswitch.conf
/usr/share/initramfs-tools/event-driven/upstart-jobs/mountall.conf
/usr/share/rsyslog/50-default.conf
/usr/share/adduser/adduser.conf
/usr/share/davfs2/davfs2.conf
/usr/share/debconf/debconf.conf
/usr/share/doc/apt-utils/examples/apt-ftparchive.conf
.

Filtrați după timp și dimensiune

Comanda de căutare vă permite să filtrați rezultatul pe baza dimensiunii și a duratei ultimei modificări.

Dimensiunea fișierului

Pentru a filtra fișierele după dimensiune, utilizați opțiunea -size.

De asemenea, trebuie să adăugați un sufix la sfârșitul valorii pentru a specifica dimensiunea:

Pentru a găsi fișiere cu dimensiunea exactă de 50 de octeți, tastați:

Pentru a găsi fișiere cu dimensiuni mai mici de 50 de octeți, utilizați caracterul "-" înainte de valoare:

În consecință, pentru a găsi fișiere mai mari de 700 megaocteți, utilizați + înainte de valoare; comanda arată astfel:

găsi / -size + 700M

Căutare bazată pe timp

Linux stochează informații despre timpul de acces, timpul de modificare și timpul de schimbare.

Pentru a filtra fișierele în funcție de timp, utilizați parametrii "-atime", "-mtime" și, respectiv, "-ctime".

Valoarea acestui parametru specifică câte zile în urmă fișierul a fost modificat. Ca și în cazul dimensiunii fișierului, puteți utiliza simbolurile - și + pentru a modifica fișierele mai puțin sau mai mult de n zile în urmă.

Adică, pentru a găsi fișierul al cărui conținut a fost modificat acum o zi, utilizați:

Pentru a scoate fișiere accesate mai puțin de o zi în urmă, utilizați:

Pentru a găsi fișiere ale căror inode au fost modificate cu mai mult de trei zile în urmă, introduceți:

Există, de asemenea, parametri asociați, cu care puteți specifica minutele în loc de zile:

În plus, comanda de căutare poate compara fișierele și poate scoate pe cele mai noi:

găsi / -newer myfile

Căutați după proprietar și privilegii

Folosind comanda de căutare, puteți căuta fișiere după proprietar sau prin drepturi asupra unui fișier.

Pentru aceasta, utilizați opțiunile -user, -group și -perm, respectiv. De exemplu, pentru a găsi un fișier deținut de un utilizator numit syslog, tastați:

găsi / -user syslog

În mod similar, pentru fișierele de ieșire care aparțin grupului de umbre, utilizați:

găsi umbra grupului

De asemenea, puteți căuta fișiere cu privilegii speciale.

Pentru a găsi un fișier cu drepturi specifice, utilizați:

Această linie va afișa toate fișierele cu astfel de drepturi.

Pentru a imprima toate fișierele ale căror privilegii sunt mai mari sau egale cu cele specificate, utilizați sintaxa:

Aceasta va returna toate fișierele cu privilegii suplimentare (de exemplu, un fișier cu privilegii 744).

Filtrarea fișierelor pe adâncime

Pentru a rula exemplele din această secțiune, creați o structură de directoare în directorul temporar. Acesta ar trebui să cuprindă trei niveluri de directoare, cu zece directoare la primul nivel. Fiecare director (inclusiv directorul de testare) trebuie să conțină zece fișiere și zece subdirectoare.

Pentru a crea o astfel de structură, executați următoarea comandă:

Pentru a vă familiariza cu structura nou creată și pentru a verifica dacă totul este creat corect, utilizați comenzile ls și cd. Apoi reveniți la directorul de testare:

Această secțiune vă va arăta cum să extrageți directoare din această structură. În primul rând, încercați o căutare simplă a fișierelor după nume:

găsiți -name file1
./ nivel1dir7 / nivel2dir8 / nivel3dir9 / fișier1
./ nivel1dir7 / nivel2dir8 / nivel3dir3 / fișier1
./ nivel1dir7 / nivel2dir8 / nivel3dir4 / fișier1
./ nivel1dir7 / nivel2dir8 / nivel3dir1 / fișier1
./ nivel1dir7 / nivel2dir8 / nivel3dir8 / fișier1
./ nivel1dir7 / nivel2dir8 / nivel3dir7 / fișier1
./ nivel1dir7 / nivel2dir8 / nivel3dir2 / fișier1
./ nivel1dir7 / nivel2dir8 / nivel3dir6 / fișier1
./ nivel1dir7 / nivel2dir8 / nivel3dir5 / fișier1
./ nivel1dir7 / nivel2dir8 / fișier1
.

Această echipă a produs un rezultat destul de mare. Prin trecerea acestui rezultat la contor, puteți vedea că 1111 fișiere sunt în cele din urmă de ieșire.

găsi -name file1 | wc -l
1111

Desigur, în majoritatea cazurilor, această concluzie este prea mare și incomodă. Încercați să-l restrângeți.

Pentru a face acest lucru, puteți utiliza parametrul -maxdepth pentru a seta adâncimea de căutare maximă:

găsiți -maxdepth num -name interogare

Pentru a găsi fișier1 în level1 și directoarele de mai sus, specificați o adâncime maximă de 2 (1 pentru directorul de nivel superior și 1 director level1).

găsiți -maxdepth 2 -name file1
./ level1dir7 / file1
./ level1dir1 / file1
./ level1dir3 / file1
./ level1dir8 / file1
./ level1dir6 / file1
./ file1
./ level1dir2 / file1
./ level1dir9 / file1
./ level1dir4 / file1
./ level1dir5 / file1
./ level1dir10 / file1

După cum puteți vedea, acest rezultat are un aspect mult mai convenabil.

În plus, puteți specifica adâncimea minimă a căutării:

găsiți -mindepth num -name interogare

Acesta este folosit pentru a găsi fișierele aflate la sfârșitul ramurilor de directoare:

găsiți -mindepth 4 -name file
./ nivel1dir7 / nivel2dir8 / nivel3dir9 / fișier1
./ nivel1dir7 / nivel2dir8 / nivel3dir3 / fișier1
./ nivel1dir7 / nivel2dir8 / nivel3dir4 / fișier1
./ nivel1dir7 / nivel2dir8 / nivel3dir1 / fișier1
./ nivel1dir7 / nivel2dir8 / nivel3dir8 / fișier1
./ nivel1dir7 / nivel2dir8 / nivel3dir7 / fișier1
./ nivel1dir7 / nivel2dir8 / nivel3dir2 / fișier1
.

Din nou, acest rezultat va conține un număr mare de fișiere (1000).

Adâncimea maximă și minimă a căutării pot fi combinate pentru a reduce intervalul de căutare:

găsiți -mindepth 2 -maxdepth 3 -name fișier
./ nivel1dir7 / nivel2dir8 / fișier1
./ nivel1dir7 / nivel2dir5 / fișier1
./ nivel1dir7 / nivel2dir7 / fișier1
./ nivel1dir7 / nivel2dir2 / fișier1
./ nivel1dir7 / nivel2dir10 / fișier1
./ nivel1dir7 / nivel2dir6 / fișier1
./ nivel1dir7 / nivel2dir3 / fișier1
./ nivel1dir7 / nivel2dir4 / fișier1
./ level1dir7 / file1
.

Executarea și combinarea comenzilor

Utilitarul de căutare vă permite să executați orice comandă auxiliară pe toate fișierele găsite; pentru aceasta, utilizați opțiunea -exec. Sintaxa de bază este:

găsi search_pars -exec command_and_parameters <> \;

simboluri <> Sunt folosite ca substituent pentru fișierele găsite. Caractere \; sunt utilizate pentru a găsi pentru a determina unde se termină comanda.

De exemplu, puteți găsi fișiere cu 644 privilegii (ca în secțiunea anterioară) și să le modificați privilegiile la 664:

/ test
găsi. -perm 644 -exec chmod 664 <> \;

Apoi puteți schimba privilegiile din director:

găsi. -perme 755 -exec chmod 700 <> \;

Pentru a asocia mai multe rezultate, utilizați comenzile -or sau -or comenzi. Comanda-și se presupune dacă este omisă.

găsi. -name file1-sau-nume-fișier9

Localizați fișierele cu comanda Locate

Comanda Locate este o alternativă pentru a găsi. Această comandă, ca regulă, funcționează mai rapid și poate căuta cu ușurință întregul sistem de fișiere.

Puteți seta această comandă cu apt-get:

sudo apt-get update
sudo apt-get instalați mlocate

Dar de ce este locația mai rapidă decât găsirea? Faptul este că localizarea depinde de baza de date a fișierelor din sistemul de fișiere.

De regulă, scriptul cron actualizează această bază de date o dată pe zi; dar o puteți actualiza manual. Rulați această comandă:

Amintiți-vă: baza de date trebuie actualizată în mod regulat, astfel încât să conțină date actualizate; în caz contrar, nu veți putea găsi fișierele recent primite sau create.

Pentru a găsi fișiere utilizând comanda Locate, pur și simplu utilizați următoarea sintaxă:

Rezultatul poate fi, de asemenea, filtrat.

De exemplu, pentru a returna numai fișiere care conțin interogarea, mai degrabă decât a afișa fiecare fișier care conține o cerere de a directoarele care conduc la aceasta, puteți utiliza indicatorul -b (pentru a căuta numai basename, numele fișierului de bază):

Pentru a localiza întoarce comanda numai fișierele care încă mai există în sistemul de fișiere (adică, fișierele care nu au fost eliminate în intervalul dintre ultima lansare a actualizat și a localiza apelul curent), utilizați steagul -e:

localizați -S
Bază de date /var/lib/mlocate/mlocate.db:
3.315 directoare
37,228 dosare
1,504,439 octeți în numele fișierelor
594.851 octeți utilizați pentru a stoca baza de date

Comenzile de căutare și localizare sunt instrumente excelente pentru găsirea fișierelor pe sistemele de operare asemănătoare UNIX. Fiecare dintre aceste utilități are avantajele sale.

În ciuda faptului că comenzile de găsire și localizare sunt foarte puternice prin ele însele, acțiunile lor pot fi extinse prin combinarea lor cu alte comenzi. După ce ați învățat cum să lucrați cu găsiți și localizați, încercați să filtrați rezultatele utilizând comenzile wc, sortare și grep.

Articole similare