find command examples in Linux

Switches of find command and their differences:

1. -name pattern: Find the matched name pattern.

1.1 -iname pattern: Like -name, but the match is case insensitive.

The above commands will help you to find the file/files if you know its name.


# find / -name test123.txt #with exact file name


# find / -iname TeSt123.txt #case insensitive


# find / -iname TeSt***.txt #case insensitive with incomplete file name


# find / -name te**.txt #incomplete file name


2. -path pattern: It will list out the exact path if it exists.

You can find the exact path by using this. If you don’t know the exact path to the file which you’re searching, then move with this intelligent switch.


# find / -path "/e**wd"






# find / -path "/us**.conf"





# find / -path "/us**.sh"






3. -perm mode: File’s permission bits are exactly mode (octal or symbolic).

Find file/files with its permission. Here is the examples:


Find file/files with permission 644

# find / -perm 664


Here / is the path for searching. This will find out the file with permission 664.

You can also use alphabetical options.

3.1 -readable >> Matches files which are readable.

3.2 -writable >> Matches files which are writable.

3.3 -executable >> Matches files which are executable.


# find ./ -executable


This will list all files with executable permission.

4. -gid & -uid

Find file/files with a specific user or group.

4.1 -gid n >> File’s numeric group ID is n.

4.2 -group gname >> File belongs to group gname (numeric group ID allowed).

4.3 uid n >> File’s numeric user ID is n.

4.4 -user name >> File belongs to user name (numeric user ID allowed).


# find ./ -gid 1003
# find ./ -group eclinux

Similarly we can use -uid & -user.

5. -empty: this will find all files having empty content.


# find ./ -empty

6. -size n[cwbkMG] ==> File uses n units of space. The following suffixes can be used:

This is such a wonderful switch in practice. We already discussed an example above.

‘b’ for 512-byte blocks (this is the default if no suffix is used)

‘c’ for bytes

‘w’ for two-byte words

‘k’ for Kilobytes (units of 1024 bytes)

‘M’ for Megabytes (units of 1048576 bytes)

‘G’ for Gigabytes (units of 1073741824 bytes)

7. -type ==> Specify the file type.

To find different file types. In Linux there are 7 types of files. That are listed below:

b block (buffered) special

c character (unbuffered) special

d directory

p named pipe (FIFO)

f regular file

l symbolic link

s socket

D door (Solaris)


# find ./ -type f

The file type “f” represents normal files. See the above example.

8. Switches related to modification time

This is an advanced option with find command. It will help you to list files with their modification time.

8.1 -amin n >> File was last accessed n minutes ago.

8.2 -atime n >> File was last accessed n*24 hours ago.

8.3 -cmin n >> File’s status was last changed n minutes ago.

8.4 -ctime n >> File’s status was last changed n*24 hours ago.

8.5 -mmin n >> File’s data was last modified n minutes ago.

8.6 -mtime n >> File’s data was last modified n*24 hours ago.

To find between two dates:

# find . -mtime $(date +%s -d”Aug 10, 2013 23:59:59″) -mtime $(date +%s -d”Aug 1, 2013 23:59:59″)


# find ./ -mmin +1

As an example you can refer to one of its application level examples. In this example we need to remove old emails from the server. Here we can use the “-mtime” switch of find command.

9. inode & links

9.1 -inum n >> File has inode number n.

9.2 -samefile name >> File refers to the same inode as name.

9.3 -links n >> File has n links.


ls -i to find out the inode number.
# ls -i test123.txt
1316256 test123.txt
# find ./ -inum 1316256


# ll

total 8

drwxrwxr-x 2 root root 4096 Sep 5 20:37 ./

drwxr-xr-x 34 root root 4096 Sep 5 19:52 ../

-rwxrwxrwx 1 root eclinux 0 Sep 5 20:37 test1234.txt*

-rwx--x--x 1 root root 0 Sep 5 20:37 test1235.txt*

-rw-rw-r-- 1 root root 0 Sep 5 20:38 test123.txt

# find ./ -links 1




All three files have single links.

10. –delete & -exec operations

10.1 -delete: This switch is used to remove a particular that is already specified in the find command. Use this switch with extra care.


# find ./ -inum 1316256


# find ./ -inum 1316256 -delete

# find ./ -inum 1316256

In this case, -delete switch removes the file test123.txt. Similarly we can remove anything that is found by find command.

10.2 -exec: This will execute commands on the find syntax.


Run the command to change the permission.

# find ./ -type f -exec chmod 777 {} \;

the chmod command after -exec in find command change the file permission to 777.

# find ./ -type f -exec rm -rf {} \;

This will remove all files in the current working directory.

That’s it in this article, hope you enjoyed it. Please share it across if you think it’s good.

Leave a Reply

Your email address will not be published. Required fields are marked *