mlocate - what is it good for?
Andrea Corbellini
corbellini.andrea at gmail.com
Wed May 22 19:43:37 UTC 2019
Hi Brian,
I personally use 'locate' all the time, and rarely use 'find' if 'locate'
is available.
The major problem I have with find is that it's slow. Even restricting the
search space to a specific directory (as opposed to searching everything
under "/") can be slow. For example, searching my home directory takes a
while, due to the large number of Python virtual envs that I have.
Sometimes searching a specific directory simply does not work with find due
to the presence of symlinks. You have to wait for find to complete (which
might take a while), realize that maybe symlinks are involved (which is not
obvious) and re-run find with -L, hoping it will work.
Searching from the root directory "/" with find is not just slow, but also
clobbers the terminal with "Permission Denied" or "Operation Not Permitted"
errors. You must remember to use 2>/dev/null (hoping that won't hide any
useful errors).
With locate instead you can search the entire filesystem and get your
results in a few milliseconds, without thinking about edge cases.
Also, if you want to always exclude certain filesystems or directories,
with find you have to play with -prune or -xdev or similar, and repeat the
same arguments every time. With locate, you can just edit one configuration
file once and you're done. In my locate configuration I exclude things like
my LXC/LXD containers: I never want results involving those.
Those are the reasons why I wish locate was enabled everywhere, not just
Ubuntu :-)
Hope this helps!
On Wed, May 22, 2019, 20:00 Brian Murray <brian at ubuntu.com> wrote:
> The Ubuntu Foundations team was recently looking at an issue with
> mlocate[1] and the effect it has on all users of Ubuntu. While that
> specific issue is fixable there are also issues[2,3] with keeping
> PRUNEFS and PRUNEPATHS current in updatedb.conf. So we ended up
> questioning the usefulness of installing mlocate by default on systems
> at all. We believe that find is an adequate replacement for mlocate but
> want to hear from you about use cases where it may not be. I'll start
> with a personal example:
>
> "I don't remember (because I need to know so infrequently) where the
> meta-release file is cached on disk by update-manager and use locate to
> find it. The find command itself is inadequate because the cached file
> exists in both /home and /var."
>
> [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=880507
> [2] http://launchpad.net/bugs/827841
> [3] http://launchpad.net/bugs/1823518
>
> Thanks,
> --
> Brian Murray
>
> --
> ubuntu-devel mailing list
> ubuntu-devel at lists.ubuntu.com
> Modify settings or unsubscribe at:
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/ubuntu-server/attachments/20190522/4c9dc549/attachment.html>
More information about the ubuntu-server
mailing list