Finding Files in Linux: Using find and locate Commands

Linux provides several powerful utilities for locating files on your system. The two most commonly used commands are find and locate, each offering different advantages depending on your search requirements.

The find Command

The find command searches for files recursively through directory hierarchies. Its basic syntax follows this pattern:

find [path] [expression] [search-term]

To search for a file by name, use the -name option:

$ find /home -name "document.txt"

This command traverses the /home directory tree searching for files matching "document.txt" and displays their full paths.

For broader searches across the entire filesystem, simply omit the path parameter:

$ find -name "config.json"

By default, find examines every subdirectory from the current location. This comprehensive approach can be time-consuming on systems with extensive directory structures. To optimize performance, constrain the search scope when you know the approximate location:

$ find /var/log -name "syslog"

The find command supports multiple search criteria beyond filename:

  • Modification time: -mtime filters files modified within a specified number of days
  • File size: -size searches based on file dimensions
  • Ownership: -user locates files belonging to specific users
  • Permissions: -perm finds files with particular access settings

For a complete reference of avialable options, consult the command documentation:

$ man find

The locate Command

The locate command offers significantly faster file searches by querying a pre-built database rather than scannning the filesystem in real-time. Before using locate, ensure it is installed on your system.

On Debian-based distributions such as Ubuntu:

$ sudo apt update
$ sudo apt install mlocate

On Red Hat-based distributions such as CentOS:

$ sudo yum install mlocate

The database powering locate requires periodic updates to reflect filesystem changes. Run the following command to refresh the index:

$ sudo updatedb

Once installed and updated, searching for files becomes straightforward:

$ locate notes.md

This searches the database and displays all paths containing the specified filename. The locate utility also accepts additional options for filtering results—consult the manual for details:

$ man locate

Choosing between find and locate depends on your needs: use find for precise searches with specific criteria, and prefer locate when speed is prioritized and you only need basic filename matching.

Tags: Linux command-line find-command locate-command file-search

Posted on Sat, 08 Aug 2026 16:02:19 +0000 by chelerblondi