Skip to content

35 Practical Examples of Linux Find Command

The Linux Find Command is a powerful tool that allows users to search for files and directories on their system. With its vast array of options and parameters, the command can be used to quickly and efficiently locate specific files based on a variety of criteria.

In this article, we will explore 35 practical examples of the Linux Find Command that will help users better understand its capabilities and how it can be used to improve their file searching experience.

Understanding the Basics of Find Command is essential to making the most of this powerful tool. The command syntax consists of the find keyword followed by the starting directory, followed by a set of options and parameters that define the search criteria.

Searching Files by Name and Type is one of the most common use cases of Find Command. Users can easily search for files based on their name, extension, or type.

Additionally, filtering by time and size can help users narrow down their search results and find files that were created, modified, or accessed within a specific timeframe or that meet a certain size requirement.


Key Takeaways

  • The Linux Find Command is a powerful tool for searching files and directories on a system.
  • Understanding the basics of the command and its syntax is essential to making the most of its capabilities.
  • With its vast array of options and parameters, the command can be used to search for files based on a variety of criteria, including name, type, time, and size.

Understanding the Basics of Find Command

Syntax and Arguments

The find command in Linux is used to search for files and directories in a specified location based on certain criteria. The basic syntax of the find command is as follows:

find [path] [expression]

Here, [path] specifies the location where the search should be performed, and [expression] specifies the criteria to be used for the search.

For example, to search for all the files and directories in the current directory, the command would be:

find . -print

Here, . specifies the current directory and -print is an expression that tells find to print the names of all the files and directories it finds.

Common Options and Criteria

find has a number of options and criteria that can be used to refine the search. Some of the most commonly used options and criteria are:

Option/CriteriaDescription
-nameSearches for files with a specific name
-typeSearches for files of a specific type (e.g. f for regular files, d for directories)
-mtimeSearches for files modified within a specific time frame
-sizeSearches for files of a specific size
-execExecutes a command on each file found

For example, to search for all the files with the name example.txt in the current directory and its subdirectories, the command would be:

find . -name "example.txt" -print

Here, -name "example.txt" specifies the name of the file to search for.

To search for all the directories in the current directory and its sub directories, the command would be:

find . -type d -print

Here, -type d specifies that only directories should be searched for.

These are just a few examples of the many options and criteria that can be used with the find command. By combining different options and criteria, you can create powerful search commands that can help you find exactly what you’re looking for.

Searching Files by Name and Type

The find command in Linux is a powerful tool for locating files and directories based on various criteria. One of the most common use cases is finding files by name and type. In this section, we’ll explore how to use the find command to search for files and directories based on their names and types.

Finding Files with Names

To find files with a specific name, you can use the -name option followed by the name of the file you’re looking for. For example, to find all files named index.html in the current directory and its subdirectories, you can run the following command:

find . -name index.html

This will search for all files named index.html in the current directory and its subdirectories and print their paths to the terminal.

Locating Directories Using Name

You can also use the -type d option to search for directories instead of files. For example, to find all directories named images in the current directory and its subdirectories, you can run the following command:

find . -type d -name images

This will search for all directories named images in the current directory and its subdirectories and print their paths to the terminal.

Searching for Specific File Types

In addition to searching for files and directories by name, you can also search for files based on their type. For example, to find all PHP files in the current directory and its subdirectories, you can run the following command:

find . -type f -name "*.php"

This will search for all files with the .php extension in the current directory and its subdirectories and print their paths to the terminal. Note that the * character is used as a wildcard to match any characters before the .php extension.

Filtering by Time and Size

The Linux find command offers a variety of options to search for files based on their time and size attributes. This section will cover some practical examples of how to filter files using mtime, atime, and size.

Finding Recently Modified Files

To find files that have been modified within the last 24 hours, the following command can be used:

find /path/to/directory -type f -mtime -1

This will return a list of all files in the specified directory that have been modified within the last 24 hours. The -type f option ensures that only regular files are returned.

Searching by Access Time

To find files that have been accessed within the last 7 days, the following command can be used:

find /path/to/directory -type f -atime -7

This will return a list of all files in the specified directory that have been accessed within the last 7 days. The -type f option ensures that only regular files are returned.

Locating Files by Size

To find files that are larger than 100MB, the following command can be used:

find /path/to/directory -type f -size +100M

This will return a list of all files in the specified directory that are larger than 100MB. The -type f option ensures that only regular files are returned.

Advanced Find Techniques

Using Regex in Find Command

Regular expressions or regex can be used in the find command to search for files with specific patterns in their names or paths. This is particularly useful when searching for files with similar names or extensions.

The following example shows how to find all files with names that start with “log” and end with “.txt”:

find /var/log -type f -regex ".*/log.*\.txt$"

In this command, the -type f option specifies that only regular files should be included in the search, while the -regex option specifies the regular expression pattern to match against the file names. The pattern ".*/log.*\.txt$" matches any file whose name starts with “log” and ends with “.txt” in any subdirectory of /var/log.

Finding Files with Special Permissions

The find command can also be used to search for files with special permissions, such as setuid, setgid, or sticky bit files. For example, to find all setuid files in the system, the following command can be used:

find / -type f -perm /4000

In this command, the -type f option specifies that only regular files should be included in the search, while the -perm /4000 option specifies that files with the setuid bit set should be included in the search.

Similarly, to find all sticky bit files in the system, the following command can be used:

find / -type f -perm /1000

In this command, the -perm /1000 option specifies that files with the sticky bit set should be included in the search.

Dealing with Ownership and Permissions

Finding Files by Owner and Group

The find command can be used to search for files based on their owner or group. This can be useful when trying to identify files that belong to a specific user or group.

To find all files owned by a specific user, use the -user option followed by the username:

$ find /home -user jdoe

This command will search the /home directory and all subdirectories for files owned by the user jdoe.

Similarly, to find all files owned by a specific group, use the -group option followed by the group name:

$ find /var/log -group syslog

This command will search the /var/log directory and all subdirectories for files owned by the syslog group.

Searching for Files with Specific Permissions

The find command can also be used to search for files based on their permissions. This can be useful when trying to identify files that have specific permissions set.

To find all files with read and write permissions for the owner, use the -perm option followed by the octal value 600:

$ find /etc -perm 600

This command will search the /etc directory and all subdirectories for files with read and write permissions for the owner.

To find all files with read and execute permissions for the owner, and read permissions for the group and others, use the -perm option followed by the octal value 544:

$ find /usr/bin -perm 544

This command will search the /usr/bin directory and all subdirectories for files with the specified permissions.

In addition to the find command, the chmod command can be used to change the permissions of files and directories. This allows users to modify the permissions of files to suit their needs. By changing the permissions of files, users can control who can access, modify, and execute them.

Utilizing Find in Scripts and Automation

Incorporating Find in Shell Scripts

One of the most common uses of the find command is to incorporate it into shell scripts. This allows developers and Linux users to automate tasks that involve searching for files or directories based on specific criteria.

For example, a developer may want to search for all files with a specific extension in a directory and its subdirectories. By using the find command in a shell script, they can easily accomplish this task.

Here is an example of a shell script that uses the find command to search for all .txt files in the current directory and its subdirectories:

#!/bin/bash
find . -name "*.txt"

This script will print out the path of all .txt files in the current directory and its subdirectories. Developers can then use this output to perform further actions on the files, such as copying or deleting them.

Automating Tasks with Find

Another way to utilize the find command is to automate tasks that involve searching for files or directories. This is especially useful for Linux users who perform repetitive tasks on a regular basis.

By using the find command in conjunction with other command-line utilities, users can create powerful automation scripts that save time and effort.

For example, a Linux user may want to automatically delete all .log files that are older than 30 days in a specific directory and its subdirectories. They can accomplish this task by using the find command in conjunction with the rm command:

find /var/log -name "*.log" -mtime +30 -exec rm {} \;

This command will search for all .log files in the /var/log directory and its subdirectories that are older than 30 days. It will then execute the rm command on each file, effectively deleting them.

By utilizing the find command in scripts and automation, developers and Linux users can save time and effort by automating repetitive tasks.

With the ability to search for files and directories based on specific criteria, the find command is a powerful tool for command-line utilities, tutorials, and examples.

Tips and Tricks for Efficient File Searching

When it comes to searching for files in Linux, the find command is an indispensable tool. However, there are some tips and tricks that can make the process more efficient and effective.

Working with Hidden Files

By default, the find command does not search for hidden files (those that start with a dot). To include hidden files in your search, use the -name option with a wildcard character:

find /path/to/directory -name ".*"

This will find all hidden files in the specified directory and its subdirectories.

Finding Empty Files and Directories

To find empty files, use the -empty option:

find /path/to/directory -type f -empty

This will find all empty files in the specified directory and its subdirectories.

To find empty directories, use the -type d option along with the -empty option:

find /path/to/directory -type d -empty

This will find all empty directories in the specified directory and its subdirectories.

Other Tips and Tricks

  • To search for files and directories based on their modification time, use the -mtime option. For example, to find files that were modified within the last 7 days:find /path/to/directory -type f -mtime -7
  • To search for files and directories based on their access time, use the -atime option.
  • To search for files and directories in a case-insensitive manner, use the -iname option instead of -name.
  • To search for files using a pattern, use the -path option with a wildcard character. For example, to find all files with “foo” in their name:find /path/to/directory -type f -path "*foo*"

Overall, the find command is a powerful tool for searching for files and directories in Linux, and these tips and tricks can help make the process more efficient and effective.

Linux Find Command in the Community

The Linux Find command is a powerful tool that is widely used in the Linux community. It has become an essential part of many Linux users’ workflow, and has been embraced by the community as a whole.

LinuxToday, a popular Linux news website, regularly publishes articles about the Linux Find command. These articles cover a range of topics, from basic usage to advanced techniques. They are a great resource for Linux users who want to learn more about the command.

The Linux community is also very active on social media platforms such as Twitter and Reddit. Users often share tips and tricks for using the Linux Find command, and help each other troubleshoot issues.

In addition to social media, the Linux community also contributes content to various websites and forums. This content includes tutorials, how-to guides, and troubleshooting tips. These resources are invaluable for Linux users who are new to the platform, or who want to learn more about the Linux Find command.

Finally, the Linux Find command is used by a diverse international community. Users from all over the world contribute to the development and improvement of the command. This international collaboration has helped make the Linux Find command one of the most powerful and versatile tools in the Linux ecosystem.

Frequently Asked Questions

How can I search for files by name using the find command in Linux?

The find command can be used to search for files by name in Linux. To search for a file named example.txt in the current directory and its subdirectories, use the following command:

find . -name example.txt

The . represents the current directory, and -name specifies that the search should be based on the filename.

What are the common options and operators used with the Linux find command?

The find command has several options and operators that can be used to refine the search. Some common ones include:

  • -type: specifies the type of file to search for (e.g. -type f for regular files, -type d for directories)
  • -mtime: searches for files that were modified within a certain number of days (e.g. -mtime +7 for files modified more than 7 days ago)
  • -size: searches for files of a certain size (e.g. -size +10M for files larger than 10 megabytes)

How do I use the find command to search for files based on permissions?

The find command can be used to search for files based on their permissions. For example, to find all files in the current directory and its subdirectories that are executable by the owner, use the following command:

find . -type f -perm /u+x

The -type f option specifies that only regular files should be searched, and -perm specifies the permissions to search for.

Can you give examples of using the find command within a Linux shell script?

Yes, the find command can be used within a shell script to automate file searches. For example, the following script finds all files in the current directory and its subdirectories that were modified more than 7 days ago and deletes them:

#!/bin/bash
find . -type f -mtime +7 -delete

In what ways can I combine the find and grep commands for effective file searching?

The find and grep commands can be combined to search for files that contain specific text. For example, to find all files in the current directory and its subdirectories that contain the word “example”, use the following command:

find . -type f -exec grep -l "example" {} \;

The -exec option specifies that the grep command should be executed on each file found, and -l specifies that only the filenames of matching files should be printed.

What are the differences between the find and locate commands in Linux?

The find and locate commands are both used to search for files in Linux, but they work in different ways. The find command searches the file system in real-time, whereas the locate command searches an index of the file system that is updated periodically. This means that the locate command can be faster for finding files, but it may not be as up-to-date as the find command.

Last Updated on January 14, 2024 by admin

Share this post on social

Copyright 2022 Linuxguidehq.com. All rights reserved. No part of this website may be reproduced, distributed, or transmitted in any form or by any means, including photocopying, recording, or other electronic or mechanical methods, without the prior written permission of the copyright owner.