92

I wish to have the command locate in ubuntu 12.04 (which is used for finding files. I believe there is such a command but I cannot see it in ubuntu 12.04 Is it part of any package?

Evandro Silva
  • 9,472
  • 6
  • 35
  • 44
JVIyer
  • 921
  • 1
  • 6
  • 3
  • 1
    Try using this command: `sudo apt-get install locate`. – Evandro Silva Nov 10 '12 at 20:24
  • 5
    For the future: if you're looking for a program and don't know the package, install apt-file: `sudo apt-get install apt-file` and search for the program using apt-file: `apt-file search /usr/bin/locate`. – hnasarat Nov 10 '12 at 20:57
  • In a standard Ubuntu install this often isn't needed - if you type a command on the command-line that Ubuntu doesn't know, it'll often suggest which package to install to get that command. Come to mention it, I think `locate` is already installed in a standard Ubuntu install anyway, so maybe this doesn't help. – thomasrutter May 28 '13 at 03:15

2 Answers2

125

sudo apt-get install mlocate should install the 'locate' command.


mlocate maintains a database of all your files and is re-indexed once a day by default. If you want it to re-index immediately then run sudo updatedb from the command line.

If you get a cannot stat error when you run locate, then you need to run sudo updatedb to populate the database, just as if you wanted to re-index immediately.


From Ubuntu 22.04 onwards, mlocate is a transitional dummy package that installs plocate, so you can run sudo apt-get install plocate instead to install plocate directly.

muru
  • 193,181
  • 53
  • 473
  • 722
Thomas Ward
  • 72,494
  • 30
  • 173
  • 237
  • 7
    I believe that the mlocate package installs a mlocate job in /etc/cron.daily which runs updatedb daily. – mfisch Nov 11 '12 at 02:20
  • 2
    Just after you do that, if you try to call locate, you will get the following error: "locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory". To solve that, please refer to @enxotib response in: http://unix.stackexchange.com/questions/26188/how-do-i-enable-locate-and-queue-the-database-to-be-built – Ramon Araujo May 12 '14 at 04:02
  • You probably want to run `sudo updatedb` after installing **mlocate**, since the search database needs to be optimized for first time use. – IgorGanapolsky Apr 10 '16 at 20:48
  • 1
    If you're on CentOS/RHEL/Amazon Linux, use `sudo yum install mlocate` to install it. Also the same, run `sudo updatedb` to initialize the database for the first time. – ADTC May 06 '18 at 00:42
  • 1
    **Warning**: At least on pop_os! 22.04 `mlocate` is a transitional dummy package to [`plocate`](https://plocate.sesse.net/), which have some advantages but have fewer features ([like `--transliterate`](https://askubuntu.com/a/1104990/349837)) – Pablo Bianchi Nov 22 '22 at 22:57
  • note that PopOS is not Ubuntu, and this is a 10 year old post. – Thomas Ward Nov 23 '22 at 00:34
1
sudo apt install plocate

Use this to install locate command in 22.04

plocate is better than mlocate

Deepak
  • 117
  • 4
  • Thanks for the updated answer, I'm doing this install right now. Why is it better, links to some source? [It helps](https://stackoverflow.com/help/how-to-answer) to provide some context when you say "better" that sounds subjective. – JimLohse Aug 14 '23 at 23:38
  • 1
    I have added the link – Deepak Aug 15 '23 at 02:58