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.[1]

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

upraviť
# 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

upraviť

Verzie BSD a GNU Findutils pochádzajú z pôvodnej implementácie.[2] 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.[3][4]

Referencie

upraviť
  1. WOODS, James A.. Finding Files Fast [online]. Usenix, 1983-01-15, [cit. 2016-03-27]. S. 8 – 10. Dostupné online.
  2. Finding Files [online]. Free Software Foundation, 2012-11-17, [cit. 2016-03-27]. Dostupné online.
  3. TRMAČ, Miloslav. mlocate [online]. [Cit. 2005-12-05]. Dostupné online. Archivované 2006-04-11 z originálu.
  4. LINDSAY, Kevin. Secure Locate [online]. 1999. Dostupné online.

Pozri aj

upraviť

Externé odkazy

upraviť
  • Tento článok je čiastočný alebo úplný preklad článku Locate (Unix) na anglickej Wikipédii.