Introduction to locate command
There are multiple tools in Linux that allows you to search files and directories in the system.
locate is one of the most used tools for searching files in Unix-based operating systems. It locates the files by their names. It searches for files whose names match a specified pattern in the command.
locate command vs. find command
find is another popular command-line tool for searching files and directories in the Linux system. Both locate and find commands have similar functionality, but they work in different ways.
locate searches files in the database whereas
find searches files in the entire file system. Due to this,
locate is faster than the
find command in searching files.
find has advanced options to search files based on different conditions, making it more powerful than the locate command.
How to install locate command
locate command is not installed by default in Linux systems. You can install locate command using the package manager tool of your Linux distros.
Install locate on Ubuntu, Debian, and Linux Mint:
$ sudo apt install plocate
Install locate on Fedora, CentOS, AlmaLinux, and Red Hat:
$ sudo dnf install plocate
plocate is a replacement for the older
mlocate package. If your system is unable to locate
plocate package, use
mlocate instead. When installing the
plocate package, the
plocate database is also initialized on the system.
How to use locate command
The syntax for using
locate command is as follows:
$ locate [OPTION] [PATTERN]
Different examples to use locate command
1. locate files having a specific name
You can specify a file name to the locate command and search for all files that match the specified pattern. The following command locates all files having name
$ locate test1.txt
2. Update a database file
If you just created new files, you have to update the database to show them in the locate command output. Also, if you get the deleted files in the output, then the database has not been updated yet.
You can manually update the database using the command below.
$ sudo updatedb
After updating the database, you will get the updated file results.
The database is regularly updated every 24 hours automatically.
3. Print only existing files at the time locate is run
When you have not updated the database, the deleted files still appear in the result when locate command is used. To get only the names of files that exist at the time locate command is run, you can use -e or --existing flag.
$ locate -e test1.txt
$ locate --existing test1.txt
4. Count the number of matching entries
--count option, locate command displays the number of matching entries instead of printing their full path. The following command counts the number of all
.txt files on the computer.
$ locate -c *.txt
$ locate --count *.txt
5. Limit the number of output
By default, locate command displays all files that match the specified pattern. You can use the
-n option to limit the number of files displayed on the output.
The following commands print the name of the first 15
$ locate -l 15 *.txt
$ locate --limit 15 *.txt
$ locate -n 15 *.txt
6. Ignore cases when matching patterns
You can use
--ignore-case option to ignore case-sensitive files when searching for files. File names with both uppercase and lowercase characters are displayed in the output.
$ locate -i pattern
$ locate --ignore-count pattern
7. Display the names of files with an exact name
By default, locate command searches for files whose name contains the specified pattern. For example, searching for a pattern
test displays all files or directories that have a string
test in their names.
To display results having an exact match only, you can use the
$ locate -r /test$
$ locate --regex /test$
8. Display statistics about the locate database
You can view the current statistics of your
mlocate database using the
$ locate -S
$ locate --statistics
9. Use a different database instead of the default
The default database used to search files is
/var/lib/mlocate/mlocate.db. You can specify a different database with
$ locate -d DBPATH pattern
$ locate --database DBPATH pattern
The following example searches the
test2.txt pattern in the database
/test/database.db in the home directory.
10. Hide the error message in the output
Sometimes, locate command displays the error message while searching the file. The
--quiet option tells locate to suppress the error output. It can be used to hide errors like permission denied.
$ locate -q
$ locate --quiet
In this tutorial, we have discussed different examples of using locate commands in Linux. locate command is helpful for searching files quickly. The mlocate database needs to be updated whenever you create or remove files on your system. If you have any questions, please let us know in the comment section.