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 {} \;


Leave a Comment

Cum se instalează Anchor CMS pe un VPS Fedora 26 LAMP

Cum se instalează Anchor CMS pe un VPS Fedora 26 LAMP

Folosind un sistem diferit? Anchor CMS este un motor de blog de sistem de gestionare a conținutului (CMS) super-simplu și extrem de ușor, gratuit și deschis

Configurare partajare NFS pe Debian

Configurare partajare NFS pe Debian

NFS este un sistem de fișiere bazat pe rețea care permite computerelor să acceseze fișiere într-o rețea de calculatoare. Acest ghid explică modul în care puteți expune folderele peste NF

Configurați un server TeamTalk pe Linux

Configurați un server TeamTalk pe Linux

TeamTalk este un sistem de conferințe care permite utilizatorilor să aibă conversații audio / video de înaltă calitate, chat de text, transfer de fișiere și partajare ecrane. Este

Folosind cheia SSH pentru a vă conecta la utilizatori non-root

Folosind cheia SSH pentru a vă conecta la utilizatori non-root

Vultr oferă o caracteristică care vă permite să preinstalați cheile SSH la crearea unei noi instanțe. Acest lucru vă permite să accesați utilizatorul root al serverelor, totuși

Cum se instalează Ranger Terminal File Manager pe Linux

Cum se instalează Ranger Terminal File Manager pe Linux

Ranger este un manager de fișiere bazat pe linia de comandă cu legături de cheie VI. Oferă o interfață de blestem minimalistă și frumoasă, cu o vedere asupra ierarhiei de directoare

Cum se instalează Redmine pe Ubuntu 16.04

Cum se instalează Redmine pe Ubuntu 16.04

Folosind un sistem diferit? Redmine este un instrument gratuit și deschis de gestionare a proiectelor bazat pe web. Este scris în Ruby on Rails și acceptă mai multe baze de date

Instalare RethinkDB Cluster pe CentOS 7

Instalare RethinkDB Cluster pe CentOS 7

Introducere RethinkDB este o bază de date NoSQL care stochează date sub formă de documente JSON. Are un limbaj de interogare super intuitiv și are funcții disponibile în mod obișnuit

Cum se construiește Brotli din sursă pe Ubuntu 18.04 LTS

Cum se construiește Brotli din sursă pe Ubuntu 18.04 LTS

Folosind un sistem diferit? Brotli este o nouă metodă de compresie cu un raport de compresie mai bun decât GZIP. Codul sursă este găzduit public pe acest Githu

Configurarea conturilor de utilizator numai SFTP pe CentOS 7

Configurarea conturilor de utilizator numai SFTP pe CentOS 7

În anumite ocazii, este posibil ca un administrator de sistem să aibă nevoie să creeze un cont de utilizator și să restricționeze accesul acestora la gestionarea propriilor fișiere prin sFTP, dar nu b

Utilizarea vizualizărilor MySQL pe Debian 7

Utilizarea vizualizărilor MySQL pe Debian 7

Introducere MySQL are o caracteristică excelentă cunoscută sub numele de vizualizări. Vizualizările sunt interogări stocate. Gândiți-vă la ele ca la un alias pentru o întrebare altfel lungă. În acest ghid,

Cum se instalează Nginx 1.14 pe Arch Linux

Cum se instalează Nginx 1.14 pe Arch Linux

Cerințe preliminare Un server Vultr care funcționează actualizat Arch Linux (vezi acest articol.) Acces Sudo. Comenzile care trebuie rulate ca root sunt prefixate de #. Th

Dezactivați sau restricționați conectarea rădăcină prin SSH pe Linux

Dezactivați sau restricționați conectarea rădăcină prin SSH pe Linux

Permiterea autentificării root pe SSH este de obicei considerată o practică slabă de securitate în întreaga industrie tehnologică. În schimb, puteți efectua administrativ sensibil

Cum se instalează Seafile Server pe Ubuntu 16.10

Cum se instalează Seafile Server pe Ubuntu 16.10

Folosind un sistem diferit? Seafile (versiunea comunității) este o soluție gratuită și deschisă de sincronizare și partajare a fișierelor, care este similară cu ownCloud. De-a lungul spiritului

Cum să compilați Nginx din sursă pe CentOS 7

Cum să compilați Nginx din sursă pe CentOS 7

Folosind un sistem diferit? NGINX poate fi utilizat ca server HTTP / HTTPS, server proxy invers, server proxy de poștă, echilibrator de sarcină, terminator TLS sau cachin

Cum se instalează Thelia 2.3 pe Debian 9

Cum se instalează Thelia 2.3 pe Debian 9

Folosind un sistem diferit? Thelia este un instrument open source pentru crearea de site-uri web pentru e-business și gestionarea conținutului online scris în PHP. Codul sursă Thelia i

Cum se instalează DokuWiki pe Ubuntu 16.04 LTS

Cum se instalează DokuWiki pe Ubuntu 16.04 LTS

Folosind un sistem diferit? DokuWiki este un program wiki open source scris în PHP care nu necesită o bază de date. Stochează date în fișiere text. DokuWik

Configurarea unui chroot pe Debian

Configurarea unui chroot pe Debian

Acest articol vă va învăța cum să configurați o închisoare chroot pe Debian. Presupun că utilizați Debian 7.x. Dacă executați Debian 6 sau 8, acest lucru poate funcționa, bine

Cum se instalează PiVPN pe Debian

Cum se instalează PiVPN pe Debian

Introducere Un mod ușor de a configura un server VPN pe Debian este cu PiVPN. PiVPN este un instalator și un pachet pentru OpenVPN. Creează comenzi simple pentru tine

Cum se instalează Chamilo 1.11.8 pe CentOS 7

Cum se instalează Chamilo 1.11.8 pe CentOS 7

Folosind un sistem diferit? Chamilo este un sistem gratuit și deschis de management al învățării (LMS), care este utilizat pe scară largă pentru educația online și colaborarea în echipă

Instalați Nginx, Wordpress și permiteți criptarea în minute cu EasyEngine pe Debian 8 sau Ubuntu 16.04

Instalați Nginx, Wordpress și permiteți criptarea în minute cu EasyEngine pe Debian 8 sau Ubuntu 16.04

EasyEngine (ee) este un instrument Python care vă permite să gestionați ușor și automat site-urile Wordpress de pe Nginx. Folosind EasyEngine, nu va trebui să dați

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

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.

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.

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.

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?

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.

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