CLI Tool van de week : Locate

mei 7, 2018

Editie 23,  6 mei 2018

We maken het allemaal wel een mee, we hebben een bestand gedownload of opgeslagen, maar we zijn vergeter waar. Hier komt LOCATE on ons te redden.

Locate is niet op ieder systeem standaard geïnstalleerd. Als ik me niet vergis is dit het geval bij RHEL (en afgeleiden zoals CentOS en Oracle Linux) en Debian GNU/Linux. (ook ik locate bij bepaalde distro’s beschikbaar onder de naam mlocate (bijv. bij OpenSuSE en daarop gebaseerde distro’s).

Als locate niet beschikbaar is zal je het eerst moeten installeren, bij Debian en Debian gebaseerde distro’s (zoals Ubuntu en Linux Mint) gebruik je APT (sudo apt install locate) en bij RHEL gebruik je YUM of het nieuwere DNF.

Na het installeren van Locate moet er een database aangemaakt worden met de bestanden beschikbaar op het systeem, dit doen we met UPDATEDB (sudo updatedb).

Om een bestand te vinden geven het het volgende commando in : $ locate BESTANDSNAAM

Helaas kan het zijn dat locate een waslijst aan bestanden laat zien (omdat je alle bestanden krijgt met BESTANDSNAAM in de naam) een voorbeeld hiervan is het zoeken naar locate zelf:

┌─[patrick@linuxgebruikers.nl]─[~]
└──╼ $ locate locate
/bin/ntfsfallocate
/etc/alternatives/locate
/etc/alternatives/locate.1.gz
/etc/cron.daily/locate
/usr/bin/fallocate
/usr/bin/locate
/usr/bin/locate.findutils
/usr/include/c++/6/bits/allocated_ptr.h
/usr/include/c++/7/bits/allocated_ptr.h
/usr/include/krb5/locate_plugin.h
/usr/include/mit-krb5/krb5/locate_plugin.h
/usr/lib/gnome-settings-daemon/gsd-locate-pointer
/usr/lib/ocaml/compiler-libs/allocated_const.cmi
/usr/lib/ocaml/compiler-libs/allocated_const.cmt
/usr/lib/ocaml/compiler-libs/allocated_const.cmti
/usr/lib/ocaml/compiler-libs/allocated_const.mli
/usr/lib/x86_64-linux-gnu/locate
/usr/lib/x86_64-linux-gnu/locate/frcode
/usr/share/bash-completion/completions/fallocate
/usr/share/doc/locate
/usr/share/doc/locate/README.Debian
/usr/share/doc/locate/changelog.Debian.gz
/usr/share/doc/locate/changelog.gz
/usr/share/doc/locate/copyright
/usr/share/doc/python-pyscard/examples/Examples/scard-api/sample_locateCards.py.gz
/usr/share/man/man1/fallocate.1.gz
/usr/share/man/man1/locate.1.gz
/usr/share/man/man1/locate.findutils.1.gz
/usr/share/man/man2/fallocate.2.gz
/usr/share/man/man3/OPENSSL_secure_allocated.3ssl.gz
/usr/share/man/man3/XdbeAllocateBackBufferName.3.gz
/usr/share/man/man3/XdbeDeallocateBackBufferName.3.gz
/usr/share/man/man3/posix_fallocate.3.gz
/usr/share/man/man5/locatedb.5.gz
/usr/share/man/man8/ntfsfallocate.8.gz
/usr/share/nmap/scripts/broadcast-novell-locate.nse
/usr/share/nmap/scripts/broadcast-versant-locate.nse
/usr/share/texlive/texmf-dist/tex/latex/frankenstein/allocate.sto
/var/cache/locate
/var/cache/locate/locatedb.n
/var/lib/dpkg/alternatives/locate
/var/lib/dpkg/info/locate.conffiles
/var/lib/dpkg/info/locate.list
/var/lib/dpkg/info/locate.md5sums
/var/lib/dpkg/info/locate.postinst
/var/lib/dpkg/info/locate.postrm
/var/lib/dpkg/info/locate.prerm

Merk ook op dat locate CaSe sensitive (Hoofdletter gevoelig) is, dus als je zoekt op Locate krijg je geen bestanden te zien die locate bevatten. Tenzij je de -i optie gebruikt.

Andere mogelijkheden met locate zijn :

-c : Toon het aantal bestanden dat voldoen aan de zoekterm, maar geeft ze niet weer (tenzij in combinatie met de -p optie).
-e : Toon bestanden die nu bestaan, maar NIET toen het databank bestand werd aangemaakt.
-E : Toon bestanden die nu NIET bestaan, maar WEL toen het databank bestand werd aangemaakt.
– l N : Toon enkel N resultaten (bijv. locate -l 20 locate)

┌─[patrick@linuxgebruikers.nl]─[~]
└──╼ $ locate -l 20 locate
/bin/ntfsfallocate
/etc/alternatives/locate
/etc/alternatives/locate.1.gz
/etc/cron.daily/locate
/usr/bin/fallocate
/usr/bin/locate
/usr/bin/locate.findutils
/usr/include/c++/6/bits/allocated_ptr.h
/usr/include/c++/7/bits/allocated_ptr.h
/usr/include/krb5/locate_plugin.h
/usr/include/mit-krb5/krb5/locate_plugin.h
/usr/lib/gnome-settings-daemon/gsd-locate-pointer
/usr/lib/ocaml/compiler-libs/allocated_const.cmi
/usr/lib/ocaml/compiler-libs/allocated_const.cmt
/usr/lib/ocaml/compiler-libs/allocated_const.cmti
/usr/lib/ocaml/compiler-libs/allocated_const.mli
/usr/lib/x86_64-linux-gnu/locate
/usr/lib/x86_64-linux-gnu/locate/frcode
/usr/share/bash-completion/completions/fallocate
/usr/share/doc/locate

Zoals altijd is dit maar een greep uit de mogelijkheden van Locate en voor een uitgebreide uitleg en lijst van opties kun je alrijd de MAN PAGES ($ man locate)  raadplegen.

Happy Hacking !

Patrick Kox

Heb je tips of feedback, laat het gerust weten in comments, of via Email (patrick@linuxgebruikers.nl).

No Comments

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *