Searching Files

The "find" command enables you to find a file based on its name, type,

owner, creation time, size, group, and other criteria. The find command

looks as follows:

find directory -option criteria

Searching by Name

To locate a file by its name, use the -name option. For example, the

following command locates a file called report in the forecast


$find forecast -name report

The -print option instructs find to display the file(s) it locates and

their paths on the standard output. For example:

$find summer -name july_report.dat -print


If you specify an absolute path in the command, find will display

absolute paths, too:

$find /home/jane/summer -name july_report.dat -print


The special characters . and .. represent your current working directory

and its parent directory, respectively. To locate a file called

invoices.txt in the current directory and display the results on the

screen, type:

$find . -name invoices.txt -print


Searching by Type

The -type option enables you to locate a file according to its type.

-type takes a single character that specifies the file type as follows:

Symbol Meaning

b block device file

c character device file

d directory file

f regular file

p named pipe

l symbolic link

For example, to find the directory customers located under the /home

directory, type:

$find /home -name customers -type d -print


Miscellaneous Criteria

You can locate files according to their size by using the -size option.

For example, to find a file whose size is 3 blocks, type:

$find customers -size 3

To specify a file's size in bytes rather than blocks, append the letter

'c' to the size value:

$find /home -size 2048c

To locate a file by its group, use the -group option:

$find /home -name outline -group developers

To locate all the files created during the last 15 minutes in the

current directory, use the -mmin option like this:

$find -mmin +0 -mmin -15

To find files that have been modified within the last two days, type:

$find -mtime -2


You may use shell wildcards as a filename. The following command locates

all the files that have a .h extension under the directory sources:

$find sources -name '*.h'

You must quote the filename when using wildcards. Otherwise, the shell

would attempt to evaluate the filename before passing it to the command.

ITWorld DealPost: The best in tech deals and discounts.