Searching Files: `find` and `locate`
Discover powerful tools to efficiently search for files and directories across your system based on various criteria.
Searching Files: `find` and `locate` is a free Linux Command Line Mastery lesson on CoddyKit — lesson 2 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Linux Command Line Mastery learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Find Your Files!
Ever lost a file or needed to find all documents of a certain type on your Linux system? It happens to everyone!
The Linux terminal offers powerful tools to help you search for files and directories efficiently. In this lesson, we'll explore two essential commands: locate and find.
`locate`: The Quick Search
First up is locate. This command is incredibly fast because it doesn't search your filesystem directly in real-time. Instead, it queries a pre-built database of all files on your system.
Think of it like searching an index in a book – it's quick, but the index might not always be perfectly up-to-date.
Basic `locate` Usage
Using locate is straightforward. Just type locate followed by the filename or pattern you're looking for. It will show you all paths that contain that string.
For example, to find all files named "my_document.txt":
locate my_document.txtUpdating `locate`'s Database
Since locate uses a database, its results can sometimes be outdated if new files have been created or deleted since the last database update.
To refresh the database, you can run the updatedb command. This usually requires administrator (root) privileges:
sudo updatedb`find`: The Real-Time Search
While locate is fast, find is much more powerful and always up-to-date. Instead of a database, find actively traverses your filesystem in real-time, checking every file and directory against your criteria.
This makes find slower than locate for simple searches, but it's perfect for complex, real-time, and precise searches.
`find` Command Structure
The basic syntax for find is:
find [path] [expression]`find` by Name
One of the most common ways to use find is to search for files by their name. You use the -name option, and you can include wildcards like * (any characters) and ? (any single character).
To find all files ending with .log in your home directory:
find /home -name "*.log"`find` by File Type
find can also filter results by file type. This is super useful when you only want to see directories or regular files.
-type f: Searches for regular files.-type d: Searches for directories.
To find all directories starting with "project" in the current location:
find . -type d -name "project*"`find` by File Size
Need to find large files taking up space? The -size option is your friend! You can specify sizes using suffixes like c (bytes), k (kilobytes), M (megabytes), G (gigabytes).
+: Greater than specified size.-: Less than specified size.- No prefix: Exactly specified size.
Example: Find files larger than 10MB in the current directory.
find . -size +10M -name "*.zip"Comparing Search Tools
You've learned about locate and find. Which of the following statements about these commands are TRUE?
Recap: Finding Files
Great job! You now have two powerful tools for searching files on your Linux system:
locate: Fast, database-driven searches. Great for quick checks but needsupdatedbfor freshness.find: Slower but real-time, powerful, and highly customizable. Essential for complex searches by name, type, size, and more.
Practice using both commands to become a master file finder!
Frequently asked questions
Is the “Searching Files: `find` and `locate`” lesson free?
Yes — the full text of “Searching Files: `find` and `locate`” is free to read here on the web, and the Linux Command Line Mastery course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Linux Command Line Mastery course, upgrade to CoddyKit PRO.
What will I learn in “Searching Files: `find` and `locate`”?
Discover powerful tools to efficiently search for files and directories across your system based on various criteria. You practise Linux Command Line Mastery with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Linux Command Line Mastery?
No prior experience is required. Linux Command Line Mastery on CoddyKit is structured for beginners through advanced learners; this is — lesson 2 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Searching Files: `find` and `locate`” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Linux Command Line Mastery lesson?
Yes. Every Linux Command Line Mastery lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Viewing File Content: `cat`, `less`, `more`
- Searching Files: `find` and `locate`
- Permissions and Ownership: `chmod`, `chown`
- Creating and Following Symbolic Links