locate is a common Unix tool for quickly finding files by name. It offers speed improvements over the find tool by searching a pre-constructed database file, rather than the filesystem directly. The downside of this approach is that changes made since the construction of the database file cannot be detected by
locate. This problem is minimised by regular, typically scheduled use of the
updatedb command, which (as the name suggests) updates the database.
Although in other distros
updatedb are in the package, they are no longer present in Arch's package. To use it, install the package. mlocate is a newer implementation of the tool, but is used in exactly the same way.
locate can be used, the database will need to be created. To do this, simply run
updatedb as root.
Keeping the database up-to-date
mlocate is installed, a script is automatically placed in
/etc/cron.daily (so that cron runs it daily) that will update the database. You can also manually run
updatedb at any time.
To save time, the
updatedb can be (and by default is) configured to ignore certain filesystems and paths by editing
man updatedb.conf will tell you about the semantics of this file. It is worth noting that among the paths ignored in the default configuration (i.e. those in the "PRUNEPATHS" string) are
locate may not discover files on external devices.