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
Kategória:GNU Kategória:Softvér pre Linux Kategória:Vzniklo v 1982