Last Updated on 1 year by Sachin G

In this post , here we are going to discuss find command that can search files and directories in the linux based system . The Find command is best tool to perform a real time search in the linux file system to find the files .

To search files user must have read and execute permission on a directory to inspect its contents.

Find command have a large number of options that uses depend on type of file should be found.

General Syntax of find command is below and it usage is below in uses methods.

# find Search_Path  Options Expression

Search_Path   : This is the path where find will filter  the files or expression

Options :  This argument will use to customize our output as we needed.

Expression : This attribute is search for a file name and return on all results that are match.

Below are 7 different method to searching in Linux file system :

(1) Files  by Type ( -type option)

The –type option followed by given file type like regular file , directory , soft link file and block devices files.

# find /home –type d ( For Directory )

# find /bin  –type l ( For soft Link files)
# find  /dev –type  b  ( For Block device files )
# find /home –type f  ( For Regular files )

(2) Files by Name ( -name option)

Here is the –name option took after with file name will fetch  exact matches  given file name  . if we need to search any file which contain passwd  anywhere in the etc directory and all sub directory, we will execute below command.

#find /etc –name '*passwd*'

(3) Files for case –insensitive ( -iname option)

You want to ignore case in searching through find command like yo do not know the case , it could be lowercase , uppercase or any of them , you can run find command with –iname option.Syntax will be like below.This is called as case insensitive searching through find command.

# find / -iname ‘*passWD*’

(4) Files by user ( -user option) and ( -group option )

Through  –user and –group option find can also search files of the owner and group ownerships based. Now if you want to search those files which is owned by user username like techtransit in the home directory of techtransit user then you have to run below command for this.

# find  /home/techtransit -user techtransit

And if you want to look those files in home directory of user techtransit , which is owned by group techtransit . Run the below command.

# find –group techtransit

You can also user both parameter together like , as I have show .

# find  Search_path  -user username –group groupname

(5) Files by Permission ( -perm option)

Searching files by permission is little comple . The –perm ioption will be used to search through permission , it look for files with particular set of permissions.
Here we are using octal value of permission to search files .The below command will match any files which user has read read,write and execute permission and group member and other have read only access in the /etc directory.

# find /etc –perm 744

Now we are going to describe the – and / value.

‘-‘ we are using for at least permission match like to find files which owner or user has at least  read, write , group and other have at least write access.

# find /etc –perm -644

To search file which the user or group has read permission or others have at least  read read and write access.

# find /etc –perm /446

When we used / or – value in perm , the 0 works like a wild card , this means  having a permission at least nothing .

Example : Below command will find all files in /etc/ directory  where others have write permission .

# find /etc –perm -002

(6) Get Files by Size  ( -size option )

Files also can search according to the size  through below option.

Below command is for exact size match 25 megabyte  on root files system.

# find  / –size 25M

+ Sign in size parameter search all file which is  more than size define.

# find –size +25G

-Sign in search all files , which is less than size define.

#  find –size   -25G

(7) Files by Time ( –mmin option )

The mmin option is for search file that had their content changed at exactly the given time in the past.below command will search those files which has changed exact 20 min ago  in the etc directory.

# find /etc –mmin 20

+ and –  operand in front of the mmin  option will look for all files in the /etc/ that have been modified more than or less than given time.