LOCATE

Zoeken op bestandsnaam

We maken het allemaal wel een mee, we hebben een bestand gedownload of opgeslagen, maar we zijn vergeten waar. Hier komt locate om 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 is 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:

$ locate locate

Figuur 1. $ locate locate

┌─[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 locateCaSe 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)

$locate -l 20 locate

Figuur 2. $ 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 altijd de manpages en/of infopages raadplegen.