Comanda Linux FIND cu exemple


Știți câte fișiere sunt într-o instalare nouă de Linux? Dacă utilizați PopOS! distribuție Linux de exemplu, există peste 31.000 de fișiere. Asta înainte de a începe să creați documente, să stocați muzică, să descărcați PDF-uri sau să organizați imagini.

Din acest motiv, găsirea fișierului sau folderului potrivit în Linux atunci când aveți nevoie devine o provocare. În acest articol, veți învăța cum să utilizați comanda Linux FIND și vă vom oferi toate exemplele pe care le putem.

Sintaxa comenzii Linux FIND

Sintaxa se referă la modul în care cuvintele sau comenzile sunt puse împreună. Așa cum o propoziție normală poate deveni un nonsens doar amestecând cuvintele, comenzile pot eșua dacă nu sunt folosite în sintaxa adecvată.

găsește [cale] [condiții] [acțiuni]

Iată ce înseamnă asta:

găsește – inițiază utilitarul Găsește în Linux

cale – unde să căutați

condiții – argumente pe care doriți să le aplicați căutării

acțiuni – ce doriți să faceți cu rezultatele

Un exemplu simplu folosind toate trei arată astfel:

găsiți . -name file-sample.rtf -print

După cum ați ghicit, acesta va găsi numele fișierului file-sample.rtf .

Calea punctului (. ) îi spune găsirii să caute în directorul curent și în orice directoare din el.

Condiția -name indică find să obțină fișierul cu acel nume specific.

Acțiunea -printați i spune FIND să arate rezultatele pe ecran.

Punctul și -print sunt valorile implicite pentru comanda find. Deci, va face în continuare același lucru dacă nu le folosiți. Deci, find -name file-sample.rtf vă va oferi aceleași rezultate.

Găsește Linux într-un alt director

Puteți căuta într-un director diferit de cel în care vă aflați. Trebuie doar să inserați calea către director după FIND. Dacă vă aflați la rădăcină și știți că fișierul se află undeva în directorul acasă/utilizator pe care l-ați folosi:

găsiți home/user -name file-sample.rtf

Este încă o căutare recursivă, așa că va trece prin fiecare director din utilizator ..

Linux FIND Căutați mai multe directoare

Dacă doriți să căutați în mai multe directoare simultan, enumerați-le în comandă, separate printr-un spațiu.

găsește /lib /var /bin -name file-sample.rtf

Linux FIND fără recursivitate sau limitare a recursiunii

Dacă ați folosit comanda FIND de mai sus la nivel rădăcină, ar căuta prin fiecare director din sistem. Deci, dacă doriți să rămâneți doar la directorul curent, utilizați opțiunea -maxdepth . Numărul de după -maxdepth indică Găsiți cât de adânc să mergeți înainte de a vă opri.

Folosirea -maxdepth 1 înseamnă doar acest director.

găsește -name file-sample.rtf -maxdepth 1

Folosirea -maxdepth 2 sau a unui număr mai mare înseamnă să aprofundezi atâtea niveluri.

găsește -maxdepth 5 -name file-sample.rtf

Exemplu Linux FIND Wildcard

Comanda FIND folosește asteriscul (* ) ca metacaracter. Folosește-l pentru orice parte a numelui de care nu ești sigur. Poate fi folosit de mai multe ori în nume. Fără tipul de fișier ca parte a numelui fișierului, rezultatele vor include și directoare care se potrivesc.

găsește fișierul acasă/nume utilizator*exemplu*

Linux FIND după tip Exemplu

Pentru a căuta doar un fișier sau un director, utilizați opțiunea -type și descriptorul corespunzător. Există câteva, dar cele de fișiere și director sunt cele mai comune:

f – fișier

d – director

b – blocați dispozitivul

c – dispozitiv de caractere

l – legătură simbolică

s – priză

găsește acasă/utilizator -nume fișier*eșantion* -type d

Exemplu Linux FIND care nu ține cont de minuscule

Spre deosebire de Windows, Linux îi pasă dacă o literă este majuscule sau mici. Deci, dacă doriți să caute atât File-Sample.rtf, cât și file-sample.rtf, utilizați opțiunea -iname .

găsiți home/user -iname File-Sample.rtf

Linux GĂSEȘTE mai multe fișiere Exemplu

Să presupunem că doriți să găsiți versiunile .rtf și .html ale unui fișier. Acest lucru se poate face într-o singură comandă folosind operatorul -o (sau). În unele distribuții, poate fi necesar să puneți numele între paranteze, cum ar fi ( -name file-sample.rtf -o -name file-sample.html ) ..

găsiți home/user -name file-sample.rtf -o -name file-sample.html

Fișierele Linux FIND care nu se potrivesc cu un nume

Poate că știți că există versiunea .html a unui fișier, dar nu dacă există și altele. Puteți filtra versiunea .html din căutare folosind opțiunea -nu .

găsește acasă/utilizator -nume fișier-eșantion* -nu -nume *.html

Găsire Linux fără rezultate de eroare

În exemplul de găsire fără recursivitate, observați că a enumerat fiecare director în care nu a putut căuta și rezultatul corect. Asta e enervant. Să îl oprim să arate toate acele directoare „Permisiune refuzată”. Combină-l cu încă Comanda terminalului Linux, grep. De asemenea, puteți utiliza Găsiți cu grep la găsiți fișiere cu anumite cuvinte în ele.

găsește -maxdepth 5 -name file-sample.rtf 2>&1 | grep -v „Permisiune refuzată”

Să descompunem 2>&1 .

2 – reprezintă stderrcare este prescurtarea pentru ieșirea erorilor standard.

1 – reprezintă stdoutcare este prescurtare pentru ieșire standard

> – înseamnă să redirecționați orice ieșire se află în stânga acesteia către orice se află în dreapta acesteia.

& – înseamnă a pune împreună.

Așadar, 2>&1 înseamnă să luați erorile standard și să le redirecționați, apoi să le puneți împreună cu ieșirea standard într-o singură ieșire.

Acum să ne uităm la | grep -v „Permisiune refuzată” .

| (numit conductă) – îi spune lui Linux să alimenteze rezultatele a ceea ce se află în stânga lui la orice se află în dreapta. Este transmis la comanda grep.

grep – este un utilitar de căutare text.

-v – îi spune grep să caute orice nu se potrivește cu textul din stânga -v. În acest caz, îi spune grep să găsească doar ceva care nu conține textul sau șirul „Permisiune refuzată”. Așadar, grep vă va afișa numai rezultatele pe care le căutați și orice erori care nu se potrivesc cu „Permisiune refuzată”.

Exemplu Linux FIND după permisiuni

.

Pentru a utiliza bine acest lucru, trebuie să învață permisiunile Linux.

Fișierele exemplu au toate permisiunile 664, cu excepția unuia cu permisiunile 775. Folosiți opțiunea -perm pentru a-l găsi.

găsește documente/ -name file-sample* -type f -perm 775

Exemplu Linux FIND după dimensiune

Găsirea fișierelor după dimensiune este la îndemână pentru a obține acele fișiere uriașe să vă umple hard diskul. Utilizați opțiunea -size, dimensiunea dorită și unul dintre următoarele sufixe. Dacă nu este folosit niciun sufix, -size este implicit b . Pentru a găsi fișiere egale și mai mari decât o anumită dimensiune, puneți semnul plus (+) în fața dimensiunii.

M – Megaocteți

G – Gigabytes

k – Kilobytes

b – blocuri (512 octeți – implicit)

c – octeți

w – cuvinte (doi octeți împreună)

găsește -size +500k

Linux FIND de către proprietar

Există două moduri de a găsi fișiere după proprietar. Unul este după numele de utilizator al proprietarului, iar celălalt este după grupul utilizatorului. Pentru a găsi după numele de utilizator, utilizați opțiunea -user , urmată de numele de utilizator. Pentru a găsi după grupul de utilizatori, utilizați -group urmat de numele grupului..

găsește -nume de utilizator de grup sau găsește -nume de utilizator de utilizator

Fișierele Linux FIND după ultimul exemplu modificat

Pentru a găsi fișiere care au fost modificate sau editate în ultimele X zile, utilizați -mtime urmat de un număr. Dacă puneți un semn minus ( ) în fața numărului, veți găsi ceva modificat cu atâtea zile înainte de acum. Semnul plus (+ ) înseamnă cu atâtea zile înainte de acum.

găsește -name „file-sample*” -mtime +5 (cu mai mult de 5 zile în urmă)

găsește -name „file-sample*” -mtime -5 (cu mai puțin de 5 zile în urmă)

Pentru a găsi după ultima modificare în minute, utilizați opțiunea -mmin urmată de numărul de minute. Folosiți + și – ca mai sus.

găsește -name „file-sample*” -mmin -5

găsește -name „file-sample*” -mmin +5

Exemplu Linux FIND FIND după ultima dată accesată

.

Opțiunea folosită pentru a găsi fișiere în funcție de data când au fost deschise ultima dată este -atime pentru zile și -amin pentru minute. Urmați-l cu numărul de zile sau minute pentru a vă întoarce și utilizați semnele + și – ca mai mari decât și mai mici decât.

găsește -name „file-sample*” -atime -5

găsește -name „file-sample* -amin -5

Combinați FIND cu alte comenzi Linux

Există un exemplu de mai sus de utilizare find cu comanda grep și îl puteți folosi cu multe altele. Puteți vedea că folosirea comenzilor find și a altor comenzi poate fi foarte puternică și poate economisi timp enorm. Imaginați-vă că trebuie să ștergeți o mulțime de un anumit tip de fișier. În loc să căutați în exploratorul de fișiere, creați comanda potrivită și se face în câteva secunde. Cum veți folosi comanda find acum?

.

Postări asemănatoare:


18.01.2022