The find command is one of the most powerful commands in Linux. It enables users to perform search operations on their machines in a very time-efficient way. You can search for specific contents and list them with their pathway locations from a very large number of materials in a very short time. Hence, as a Linux enthusiast, you should learn in detail about the find command in Linux.
A. Description
The find command in Linux performs the task of searching & listing files and directories in a directory hierarchy in real-time.
B. Syntax
The syntax for the find command has been given below in detail.
find [OPTIONS] [PATH] [EXPRESSION]
- [OPTIONS] — It maintains the handling of the symbolic links, debugging methods, and modification techniques.
- [PATH] — It specifies where to start searching.
- [EXPRESSION] — It specifies the operations to be executed.
C. Options
Many useful options are available for the find command. I have listed some of the most used ones here. However, if you want to know more about options for the find command you can always check the man page for the find command.
man find
Useful Options
- -name PATTERN: Will search for the given PATTERN named contents.
- -empty: Search for empty contents only.
- -type d/f: d(limits the search to only directories), f(limits the search to only files).
- -size +n,n,-n: Search for a specific size n.
- -mmin +n,n,-n: Search for content modified at specific minute n.
- -mtime +n,n,-n: Search for content modified at specific day n.
- -amin +n,n,-n: Search for content accessed at specific minute n.
- -atime +n,n,-n: Search for content accessed at specific day n.)
- -exec: It can be used to perform customized tasks on the matches.
- -perm PERMISSION: Search for content with specific PERMISSION.
- -user USERNAME: Search for contents of a specific user.
- -delete: Perform deletion of the matched contents.
Practical Examples of the “find” Command in Linux
The find command in Linux is an easy-to-use command which is used to find contents. Some of the most useful applications of the find command have been illustrated below. In this article, I have worked with the following directory hierarchy and files.
Note: The tree command lists the contents of a directory recursively in a tree-like configuration. If you’re using the tree command for the first time in Ubuntu you will have to install the command. You can do it simply by running the below command:
sudo apt install tree
Finally, provide the user password and you’re good to go with the tree command.
Example 1: Finding Files by Name Using the “find” Command in Linux
You can search for a file by its name using the find command added with the -name option. Here, I will search for a file named “List1.txt”. To do the same you can follow the below process.
Steps to Follow >
➊ At first open the Ubuntu Terminal in the TestFolder directory.
You can open Ubuntu Terminal from a specific directory. To learn details about that click here.
➋ Type the following command in the command prompt:
find -name List1.txt
➌ Now, press the ENTER button.
Output >
In the below Image, you can see that using the -name option with the find command I have printed the location of my desired file List1.txt on the terminal.
A. Case-Insensitive Search
Now, If you forget the proper case-sensitive naming you can use the -iname option to make the search case-insensitive. To do the same you can follow the below process.
Steps to Follow >
➊ At first open the Ubuntu Terminal in the TestFolder directory.
You can open Ubuntu Terminal from a specific directory. To learn details about that click here.
➋ Type the following command in the command prompt:
find -iname list1.txt
➌ Now, press the ENTER button.
Output >
In the below Image, you can see that using the -iname(case-insensitive) option with the find command I have printed the location of my desired file List1.txt on the terminal.
Example 2: Finding Empty Files & Directories
You can search and list empty files & directories by using the -empty options with the find command by following the below process.
Steps to Follow >
➊ At first open the Ubuntu Terminal in the TestFolder directory.
You can open Ubuntu Terminal from a specific directory. To learn details about that click here.
➋ Type the following command in the command prompt:
find -empty
➌ Now, press the ENTER button.
Output >
In the below Image, you can see that I have printed the location of empty contents on the terminal.
Similar Readings
- The “diff” Command in Linux [11 Practical Examples]
- The “cmp” Command in Linux [7 Practical Examples]
- The “comm” Command in Linux [10 Practical Examples]
Example 3: Finding Files by Type Using the “find” Command in Linux
You can search for contents by their types(i.e. f for files & d for directories) using the find command added with the -type option. To do the same as I have done you can follow the below process.
Steps to Follow >
➊ At first open the Ubuntu Terminal in the TestFolder directory.
You can open Ubuntu Terminal from a specific directory. To learn details about that click here.
➋ Type the following commands in the command prompt:
find -type f
find -type d
➌ Now, press the ENTER button for every line of commands.
Output >
In the below Image, you can see that using the -type option with the find command I have printed the desired type of contents on the terminal.
Example 4: Finding Files by Size Using the “find” Command in Linux
You can search for files by specific size using the find command added with the -size option. To do the same as I have done you can follow the below process.
Steps to Follow >
➊ At first open the Ubuntu Terminal in the TestFolder directory.
You can open the Ubuntu Terminal from a specific directory. To learn details about that click here.
➋ Type the following commands in the command prompt:
find -size -4k
find -size 4k
find -size +4k
➌ Now, press the ENTER button for every line of commands.
Output >
In the below Image, you can see that using the -size option with the find command I have printed the location of contents of a specific size on the terminal.
Example 5: Finding Files by Extension
You can search for files by their extension using the find command added with the -name option & special character asterisk(*). Here, I will search for files containing the .txt extensions. To do the same you can follow the below process.
Steps to Follow >
➊ At first open the Ubuntu Terminal in the TestFolder directory.
You can open the Ubuntu Terminal from a specific directory. To learn details about that click here.
➋ Type the following command in the command prompt:
find -name *.txt
➌ Now, press the ENTER button.
Output >
In the below Image, you can see that using the -name option & special character asterisk(*) with the find command I have printed the location of files containing .txt extension on the terminal.
Example 6: Finding Files by Modification/Access Date & Time
A. Finding Files by Modification Date & Time
You can search for files modified at a certain number of minutes ago using the find command added with the -mmin(m represents modification) option. To do the same as I have done you can follow the below process.
Steps to Follow >
➊ At first open the Ubuntu Terminal in the TestFolder directory.
You can open the Ubuntu Terminal from a specific directory. To learn details about that click here.
➋ Type the following commands in the command prompt:
find -mmin -130
find -mmin +130
find -mmin 130
➌ Now, press the ENTER button for every line of commands.
Output >
In the below Image, you can see that using the -mmin option with the find command I have printed the location of files that are modified at certain times on the terminal.
B. Finding Files by Access Date & Time
You can search for files accessed at a certain number of minutes ago using the find command added with the -amin(a represents access) option. To do the same as I have done you can follow the below process.
Steps to Follow >
➊ At first open the Ubuntu Terminal in the TestFolder directory.
You can open the Ubuntu Terminal from a specific directory. To learn details about that click here.
➋ Type the following commands in the command prompt:
find -amin -5
find -amin +120
find -amin 2
➌ Now, press the ENTER button for every line of commands.
Output >
In the below Image, you can see that using the -amin option with the find command I have printed the location of files that are accessed at certain times on the terminal.
Example 7: Finding Files by Permission Attributes
You can search for files with specific permissions using the find command added with the -perm option. In the following table, I have listed a few different permission modes used in Linux.
Permission Modes(r= read, w=write, x=execute) | ||
---|---|---|
Octal | Binary | File Mode |
0 | 000 | — |
1 | 001 | –x |
2 | 010 | -w- |
3 | 011 | -wx |
4 | 100 | r– |
5 | 101 | r-x |
6 | 110 | rw- |
7* | 111* | rwx* |
Here, I will search for the files that have permission attributes set to 777* as shown in the below image. To do the same you can follow the below process.
Steps to Follow >
➊ At first open the Ubuntu Terminal in the TestFolder directory.
You can open Ubuntu Terminal from a specific directory. To learn details about that click here.
➋ Type the following command in the command prompt:
find -perm 777
➌ Now, press the ENTER button.
Output >
In the below Image, you can see that using the -perm option with the find command I have printed the location of the desired file on the terminal.
Similar Readings
- The “ln” Command in Linux [6 Practical Examples]
- The “lsof” Command in Linux [8 Practical Examples]
- The “tar” Command in Linux [12 Practical Examples]
Example 8: Finding Files by Owner Using the “find” Command in Linux
You can search other users’ directories using the find command added with the -user option. Here, I will search on other softeko‘s Desktop directories. To do the same you can follow the below process.
Steps to Follow >
➊ At first open the Ubuntu Terminal in the TestFolder directory.
You can open Ubuntu Terminal from a specific directory. To learn details about that click here.
➋ Type the following command in the command prompt:
find /home/softeko/Desktop -user softeko
➌ Now, press the ENTER button.
Output >
In the below Image, you can see that using the -user option with the find command I have performed a search operation on other users’ Desktop directory from my terminal.
Example 9: Finding a Specific Text Within Text Files
You can search for a specific text using the find command added with the -exec option & the grep command. Here, I will search for “Good”. To do the same you can follow the below process.
Steps to Follow >
➊ At first open the Ubuntu Terminal in the TestFolder directory.
You can open the Ubuntu Terminal from a specific directory. To learn details about that click here.
➋ Type the following command in the command prompt:
find -name *.txt -exec grep 'Good' {} \;
➌ Now, press the ENTER button.
Output >
In the below Image, you can see that using the -exec option with the find command I have searched for a specific text “Good”.
Example 10: Finding & Deleting Using the “find” Command in Linux
You can delete a file by its name using the find command added with the -delete option. Here, I will delete a file named “list2.txt”. To do the same you can follow the below process.
Steps to Follow >
➊ At first open the Ubuntu Terminal in the TestFolder directory.
You can open the Ubuntu Terminal from a specific directory. To learn details about that click here.
➋ Type the following command in the command prompt:
find -name list2.txt -delete
➌ Now, press the ENTER button.
Output >
In the below Image, you can see that using the -delete option with the find command I have deleted the list2.txt file.
Conclusion
In this article, I have tried to present you with the applications and usefulness of the find command in Linux. Hope that you’ll be able to explore more things with the help of these practical examples and find the right direction to be a power user of Linux.
Similar Readings
- The “chgrp” Command in Linux [7 Practical Examples]
- The “file” Command in Linux [9+ Practical Examples]
- The “fsck” Command in Linux [7 Practical Examples]
- The “patch” Command in Linux [4 Practical Examples]
- The “rmdir” Command in Linux [7 Practical Examples]
- The “stat” Command in Linux [9 Practical Examples]
FUNDAMENTALS A Complete Guide for Beginners