Locate (Unix)

locate je unixový nástroj, ktorý slúži na vyhľadanie súborov v súborovom systéme. Vyhľadáva vo vopred vytvorenej databáze (indexe) súborov, ktorá je generovaná príkazom updatedb (a typicky aj pravidelne aktualizovaná spúšťaním updatedb z démona) a komprimovaná pomocou prírastkového kódovania. Nástroj vznikol v roku 1982.

Nástroj pri väčšom množstve súborov umožňuje výrazne efektívnejšie vyhľadávanie než prosté iteratívne prehľadávanie adresárovej štruktúry (napríklad cez find). Je však potrebná pravidelná aktualizácia indexu, ku ktorej dochádza aj pokiaľ používateľ nástroj aktívne nepoužíva.

Použitie 
# aktualizuje databázu (trvalo 4 minút a 32,514 s)
$ updatedb --localpaths=/ --prunepaths="/home /srv /dev/shm"

# počet položiek v databáze (trvalo 1,319 s)
$ locate '*'|wc -l
776084

# vyhľadá súbory, ktoré v názve grub.cfg (trvalo 1,616 s)
$ locate grub.cfg
/boot/grub/grub.cfg
/etc/grub.d/backup/boot_grub/grub.cfg
/usr/share/doc/grub-common/examples/grub.cfg

Parametre updatedb v príklade:
 localpaths – umiestnenia, ktoré zaindexuje (rekurzívne)
 prunepaths – umiestnenia, ktoré pri indexácii vynechá (rekurzívne)

Implementácie 
Verzie BSD a GNU Findutils pochádzajú z pôvodnej implementácie. Databáza s informáciami o súboroch je prístupná všetkým používateľom a index je vytváraný pod používateľom root.

locate je tiež zahrnutý v systéme MacOS.

mlocate (Merging Locate) a starší slocate (Secure Locate) používajú databázu zahŕňajúcu aj prístupové práva k súborom a pri vyhľadávaní zobrazuje len názvy súborov prístupné aktuálnemu používateľovi.

Referencie

Pozri aj 
 mdfind v systéme MacOS

Externé odkazy 
 GNU Findutils
 mlocate
 
 
 
 rlocate – variant využívajúci modul jadra a démona na neustále aktualizácie.
 KwickFind – frontend KDE GUI pre vyhľadanie
 Locate32 – grafický variant pre Microsoft Windows (už nie je aktívne vyvíjaný)

Zdroj 
 

GNU
Softvér pre Linux
Vzniklo v 1982