Cinci comenzi de căutare de fișiere pe Linux

Introducere

Există cinci comenzi de cautare avansata fișier pe Linux: whereis, locate, which, type, și find. Fiecare dintre ele are propriile caracteristici și este proiectat pentru scenarii particulare de căutare. Acest ghid vă va prezenta fiecare comandă și va prezenta exemple de utilizare. Pentru citirea în continuare a oricăreia dintre aceste comenzi, este mai bine să consultați pagina manuală corespunzătoare.

whereis

whereisComanda este folosită pentru a căuta fișiere binare, codul sursă, și paginile de manual on - line la mai multe standard de directoare pentru a instala orice nume de program specificat.

Deoarece whereisnu caută fiecare locație de pe sistemul dvs., nu se vor găsi fișierele din aceste directoare specifice. Din același motiv, veți obține rapid rezultatul căutării dvs., indiferent dacă a fost găsit sau nu.

De asemenea, nu va căuta acele comenzi care sunt încorporate direct în shell.

De exemplu, dacă doriți să găsiți informații despre lscomandă, rulați următoarea comandă pe terminalul dvs.:

whereis ls

Veți primi câteva feedback-uri precum:

ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

În rezultat, /bin/lseste binarul pe care doriți să îl localizați, celelalte două sunt manuale pentru lsprogram, nu a lsfost găsit niciun cod sursă pentru program.

Copiați /bin/lsfișierul în directorul de origine și în /usr/bindirector, apoi rulați din whereisnou comanda:

cp /bin/ls ~
cp /bin/ls /usr/bin/ls
whereis ls

După cum vedeți, numai /bin/lsși /usr/bin/lsau fost găsite în rezultatul căutării. lsProgramul în directorul de domiciliu nu a fost găsit, deoarece directorul de origine nu este una dintre cele standard , directorul de instalare.

ls: /bin/ls /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

Dacă executați următoarea comandă:

whereis cd

Veți vedea o ieșire similară cu linia de mai jos. Nu a fost descoperit niciun fișier binar, deoarece cdeste o comandă încorporată a shell-ului.

cd: /usr/share/man/man1/cd.1.gz /usr/share/man/man1p/cd.1p.gz

locate

locateComanda este folosită pentru a găsi fișiere după nume , cu ajutorul unei baze de date ( /var/lib/mlocate/mlocate.db). Această bază de date este practic o imagine a aspectului sistemului de fișiere. Toate înregistrările din această bază de date care se potrivesc interogării dvs. vor fi listate în rezultatul căutării. În mod implicit, locatecomanda va folosi interogarea dvs. pentru a se potrivi cu orice parte a întregului nume al fiecărei înregistrări, inclusiv numele căii. Prin urmare, numărul de fișiere potrivite în rezultatul căutării ar putea fi mai mult decât vă așteptați.

Pe măsură ce baza de date devine depășită, rezultatul căutării locatecomenzii devine mai puțin precis. Este posibil să observați fișiere care nu mai există sau nu veți vedea potriviri pentru fișierele recent create. În mod implicit, mlocate.dbbaza de date este actualizată automat o dată pe zi. Puteți utiliza updatedbcomanda pentru a o actualiza manual.

Deoarece căutarea este efectuată pe baza de date în loc de sistemul de fișiere, viteza de căutare este foarte rapidă.

Dacă executați următoarea comandă:

locate ls

Veți obține multe înregistrări în locul rezultatului așteptat.

Pentru a face rezultatul căutării mai exact, puteți utiliza -bsteagul pentru a restrânge intervalul de căutare, folosind interogarea pentru a potrivi doar numele de bază al fiecărei înregistrări:

locate -b "\ls"

De data aceasta, veți obține locația fiecărui fișier apelat exact lsla sistemul dvs. de fișiere:

/bin/ls

which

whichComandă va căuta comanda ați specificat în valoarea variabilei de mediu PATHși a reveni primul rezultat în mod implicit. Dacă întrebați un alias, whichcomanda va determina comanda reală pentru alias înainte de a efectua căutarea.

whichComanda este de asemenea foarte rapid din cauza simplității sale.

Utilizarea whichcomenzii este simplă:

which your_command

Dacă doriți să afișați toate comenzile potrivite în loc de prima, folosiți -asteagul:

which -a your_command

Iată un exemplu pentru căutarea unei comenzi care a fost alias:

which ll

Rezultatul căutării ar fi:

alias ll='ls -l --color=auto'
    /bin/ls

type

În mod implicit, typecomanda va indica modul în care un nume de comandă ar fi interpretat. Rezultatele posibile includ un alias, un cuvânt cheie, o funcție, un builtin sau un fișier. La fel ca whereiscomanda, typecomanda va căuta doar în mai multe directoare de instalare standard pentru a răspunde la întrebarea dvs.

Câteva exemple pentru tastarea diferitelor comenzi:

O comandă builtin shell:

type cd

cd is a shell builtin

Un fișier binar pe sistemul de fișiere:

type sudo

sudo is /usr/bin/sudo

Un alias:

type ls

ls is aliased to `ls --color=auto'

find

Printre cele cinci comenzi de căutare a fișierelor introduse în acest tutorial, findcomanda este cea mai puternică. Este, de asemenea, cel mai lent. Spre deosebire de celelalte patru comenzi, findcomanda va căuta de fapt fișierul dvs. pe întregul sistem de fișiere, un i-nod de un singur i-nod. Cu ajutorul findcomenzii, puteți utiliza criterii de interogare sofisticate pentru a găsi fiecare fișier de care aveți nevoie, chiar să executați în plus acțiuni asupra fișierelor găsite.

Criteriile de căutare pentru findcomandă sunt prea sofisticate pentru a fi explicate într-un articol atât de scurt, aici sunt câteva exemple.

Formatul de bază al findcomenzii:

find [path] [option] [action]

Pentru a găsi toate fișierele din directorul de lucru și toate subdirecțiile sale:

find

Pentru a găsi un fișier apelat aaaîn directorul de acasă și în toate subdirectoarele sale:

find ~ -name 'aaa'

Pentru a găsi toate fișierele din sistemul de fișiere modificate în ultimele 24 de ore:

find / -mtime 0

Pentru a găsi toate fișierele din directorul web și toate subdirectoarele sale care aparțin utilizatorului nginx:

find /usr/share/nginx/html/ -user nginx

Pentru a găsi toate fișierele din directorul de lucru ale cărui permisiuni sunt 0744:

find -perm -0744

Pentru a găsi un fișier cu numele aaaîn directorul de lucru și lista informațiilor detaliate:

find -name 'aaa' -exec ls -l {} \;

Lasă un comentariu

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.

6 lucruri extrem de nebunești despre Nintendo Switch

6 lucruri extrem de nebunești despre Nintendo Switch

Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.

Promisiuni tehnologice care sunt încă nelivrate

Promisiuni tehnologice care sunt încă nelivrate

Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!

Te-ai întrebat vreodată cum câștigă hackerii bani?

Te-ai întrebat vreodată cum câștigă hackerii bani?

Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe