Android

Nađite naredbu u Linuxu

苹果系统macos?Catalina Play On Linux?;支持Windows?;解决分辨率问题

苹果系统macos?Catalina Play On Linux?;支持Windows?;解决分辨率问题

Sadržaj:

Anonim

Jedna od najčešćih operacija pri radu na Linuxu je traženje datoteka i direktorija. Na Linux sustavima postoji nekoliko naredbi koje vam omogućuju pretraživanje datoteka s find i locate koji se najčešće koriste.

Naredba locate najbrži je i najjednostavniji način pretraživanja datoteka i mapa po njihovim imenima.

U ovom ćemo vodiču objasniti kako koristiti naredbu locate .

Instalacija locate (naredba lociranja nije pronađena)

Ovisno o distribuciji i o tome kako je sustav predviđen, locirani paket može se ili ne mora unaprijed instalirati na vaš Linux sustav.

Da biste provjerili je li uslužni program locate instaliran na vašem sustavu, otvorite terminal, upišite locate i pritisnite Enter . Ako je paket instaliran, sustav će prikazati locate: no pattern to search for specified , inače ćete vidjeti nešto poput locate command not found .

Ako locate nije instalirana, možete je lako instalirati pomoću upravitelja paketa vašeg distro.

Instalirajte locate na Ubuntu i Debianu

sudo apt update sudo apt install mlocate

Instalirajte locate na CentOS i Fedora

sudo yum install mlocate

Kako funkcionira locate

Naredba locate traži određeni uzorak kroz datoteku baze podataka koju generira naredba updatedb . Pronađeni rezultati prikazuju se na zaslonu, jedan po retku.

Tijekom instalacije mlocate paketa stvara se cron posao koji pokreće updatedb naredbu svaka 24 sata. To osigurava da se baza podataka redovito ažurira. Za više informacija o cron poslu provjerite /etc/cron.daily/mlocate datoteku.

Baza podataka može se ručno ažurirati pokretanjem ažurirane naredbe kao root ili korisnika s sudo povlasticama:

sudo updatedb

Postupak ažuriranja trajat će neko vrijeme, ovisno o broju datoteka i mapa i brzini vašeg sustava.

Datoteke stvorene nakon ažuriranja baze podataka neće se prikazivati ​​u rezultatima pronalaska.

U odnosu na snažniju naredbu find koja pretražuje datotečni sustav, locate djeluje mnogo brže, ali nema mnogo mogućnosti i može pretraživati ​​samo po nazivu datoteke.

Kako se koristi naredba locate

Sintaksa naredbe locate je sljedeća:

locate PATTERN…

U svom najosnovnijem obliku, ako se koristi bez ikakvih opcija, naredba locate ispisat će apsolutnu putanju svih datoteka i mapa koje odgovaraju obrascu pretraživanja i za koje je korisnik pročitao dozvolu za čitanje.

Na primjer za pretraživanje datoteke s imenom .bashrc biste:

locate.bashrc

Izlaz će uključivati ​​imena svih datoteka koje u svojim imenima sadrže .bashrc :

/etc/bash.bashrc /etc/skel/.bashrc /home/linuxize/.bashrc /usr/share/base-files/dot.bashrc /usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc /usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc

Datoteka /root/.bashrc neće prikazati jer smo naredbu /root/.bashrc kao uobičajeni korisnik koji nema dopuštenja za /root direktoriju /root .

Ako je popis rezultata dugačak, za bolju čitljivost izlaz možete prenijeti na naredbu less :

locate.bashrc | less

Naredba locate također prihvaća obrasce koji sadrže znakove globbinga kao što su zamjenski znakovi * . Kada uzorak ne sadrži znakove koji se globaliziraju, naredba traži *PATTERN* , zato su u prethodnom primjeru prikazane sve datoteke koje sadrže obrazac pretraživanja u njihovim imenima.

Zamjenski znak je simbol koji se koristi za predstavljanje nula, jednog ili više znakova. Na primjer, za pretraživanje svih .md datoteka u sustavu koje biste koristili:

locate *.md

Da biste ograničili rezultate pretraživanja, koristite opciju -n a slijedi broj rezultata koji želite biti prikazani. Na primjer, sljedeća naredba pretražit će sve .py datoteke i prikazati samo 10 rezultata:

locate -n 10 *.py

Prema zadanim postavkama locate vrši pretraživanja koja razlikuju velika i mala slova. Opcija -i ( --ignore-case ) locate da bi zanemarila velika slova i pokrenula pretraživanje bez ikakvih slova.

locate -i readme.md

/home/linuxize/p1/readme.md /home/linuxize/p2/README.md /home/linuxize/p3/ReadMe.md

Za prikaz broja svih odgovarajućih unosa koristite opciju -c ( --count ). Sljedeća naredba vraća broj svih datoteka koje sadrže .bashrc u svojim imenima:

locate -c.bashrc

6

Prema zadanom, locate ne provjerava postoje li pronađene datoteke još u datotečnom sustavu. Ako ste izbrisali datoteku nakon najnovijeg ažuriranja baze podataka, ako se datoteka podudara s obrascem pretraživanja, uključit će se u rezultate pretraživanja.

Za prikaz samo imena datoteka koje postoje u vrijeme pokretanja pretraživanja, koristite opciju -e (- --existing ). Na primjer, sljedeće bi vratilo samo postojeće .json datoteke:

locate -e *.json

locate --regex -i "(.mp4|\.avi)"

Zaključak

Naredba locate traži u datotečnom sustavu datoteke i direktorije čije se ime podudara s danim obrascem. Sintaksu naredbi lako je zapamtiti, a rezultati se prikazuju gotovo odmah.

Za više informacija o svim dostupnim mogućnostima naredbe locate tip man locate na vašem terminalu.

locirati terminal