locate Command

The locate command in Linux is a fast and efficient utility for finding files by name. Unlike the find command, which searches the filesystem in real-time, locate searches a pre-built database of files, making it significantly quicker for general file searches.

Syntax

locate [OPTION]... PATTERN...

Description

The locate command relies on a database, usually named mlocate.db, which is typically updated daily by a cron job. This database contains a snapshot of the filesystem. Because it doesn't traverse the actual filesystem, locate can return results almost instantly. However, this also means that very recently created or deleted files might not appear in the search results until the database is updated.

Common uses include:

  • Quickly finding files by name or partial name.
  • Searching for files across the entire system.
  • Identifying the location of installed programs or configuration files.

Common Options

Option Description
-i, --ignore-case Ignore case distinctions when matching patterns.
-n <num> Limit the number of results to <num>.
-r, --regexp Interpret patterns as extended regular expressions.
-q, --quiet Do not write messages about non-existent files or permission problems.
-S, --statistics Print statistics about the locate database.
-w, --wholename Match the whole path name, not just the base name.

Examples

Find a file by name

locate mydocument.pdf

Finds all files named mydocument.pdf on the system.

Find files with a partial name (case-insensitive)

locate -i config

Finds all files and directories containing "config" (case-insensitive).

Update the locate database

sudo updatedb

Manually updates the mlocate.db database to include recent filesystem changes. This command usually requires root privileges.

Find files matching a pattern in a specific directory

locate /etc/apt/*.list

Finds all files ending with .list within the /etc/apt/ directory.

Limit the number of results

locate -n 5 bashrc

Displays only the first 5 results found for files named bashrc.

See also