0% found this document useful (0 votes)
12 views31 pages

My Unix Material

Uploaded by

Amiya Kumar Sahu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views31 pages

My Unix Material

Uploaded by

Amiya Kumar Sahu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 31

Grep Command in UNIX and Linux Examples

Grep is the frequently used command in Unix (or Linux). Most of us use grep just for finding the words in a file.
The power of grep comes with using its options and regular expressions. You can analyze large sets of log files
with the help of grep command.

Grep stands for Global search for Regular Expressions and Print.

The basic syntax of grep command is

grep [options] pattern [list of files]

Let see some practical examples on grep command.

1. Running the last executed grep command

this saves a lot of time if you are executing the same command again and again.

!grep

This displays the last executed grep command and also prints the result set of the command on the terminal.

2. Search for a string in a file

this is the basic usage of grep command. It searches for the given string in the specified file.

grep "Error" logfile.txt

This searches for the string "Error" in the log file and prints all the lines that has the word "Error".

3. Searching for a string in multiple files.

grep "string" file1 file2

Grep "string" file_pattern

This is also the basic usage of the grep command. You can manually specify the list of files you want to search
or you can specify a file pattern (use regular expressions) to search for.

4. Case insensitive search

the -i option enables to search for a string case insensitively in the give file. It matches the words like "UNIX",
"Unix", "unix".

grep -i "UNix" file.txt


5. Specifying the search string as a regular expression pattern.

grep "^[0-9].*" file.txt

This will search for the lines which starts with a number. Regular expressions is huge topic and I am not
covering it here. This example is just for providing the usage of regular expressions.

6. Checking for the whole words in a file.

By default, grep matches the given string/pattern even if it found as a substring in a file. The -w option to grep
makes it match only the whole words.

grep -w "world" file.txt

7. Displaying the lines before the match.

Some times, if you are searching for an error in a log file; it is always good to know the lines around the error
lines to know the cause of the error.

grep -B 2 "Error" file.txt

This will prints the matched lines along with the two lines before the matched lines.

8. Displaying the lines after the match.

grep -A 3 "Error" file.txt

This will display the matched lines along with the three lines after the matched lines.

9. Displaying the lines around the match

grep -C 5 "Error" file.txt

This will display the matched lines and also five lines before and after the matched lines.

10. Searching for a sting in all files recursively

you can search for a string in all the files under the current directory and sub-directories with the help -r option.
grep -r "string" *

11. Inverting the pattern match

you can display the lines that are not matched with the specified search sting pattern using the -v option.

grep -v "string" file.txt

12. Displaying the non-empty lines

You can remove the blank lines using the grep command.

grep -v "^$" file.txt

13. Displaying the count of number of matches.

We can find the number of lines that matches the given string/pattern

grep -c "sting" file.txt

14. Display the file names that matches the pattern.

We can just display the files that contains the given string/pattern.

grep -l "string" file.txt

15. Display the file names that do not contain the pattern.

We can display the files which do not contain the matched string/pattern.

grep -l "string" file.txt

16. Displaying only the matched pattern.

By default, grep displays the entire line which has the matched string. We can make the grep to display only
the matched string by using the -o option.
grep -o "string" file.txt

17. Displaying the line numbers.

We can make the grep command to display the position of the line which contains the matched string in a file
using the -n option

grep -n "string" file.txt

18. Displaying the position of the matched string in the line

The -b option allows the grep command to display the character position of the matched string in a file.

grep -o -b "string" file.txt

19. Matching the lines that start with a string

the ^ regular expression pattern specifies the start of a line. This can be used in grep to match the lines which
start with the given string or pattern.

grep "^start" file.txt

20. Matching the lines that end with a string

the $ regular expression pattern specifies the end of a line. This can be used in grep to match the lines which
end with the given string or pattern.

grep "end$" file.txt

Sed Command in Unix and Linux Examples


Sed is a Stream Editor used for modifying the files in unix (or linux). Whenever you want to make changes to
the file automatically, sed comes in handy to do this. Most people never learn its power; they just simply use
sed to replace text. You can do many things apart from replacing text with sed. Here I will describe the features
of sed with examples.

Consider the below text file as an input.


>cat file.txt

unix is great os. unix is opensource. unix is free os.

learn operating system.

unixlinux which one you choose.

Sed Command Examples

1. Replacing or substituting string

Sed command is mostly used to replace the text in a file. The below simple sed command replaces the word
"unix" with "linux" in the file.

>sed 's/unix/linux/' file.txt

linux is great os. unix is opensource. unix is free os.

learn operating system.

linuxlinux which one you choose.

Here the "s" specifies the substitution operation. The "/" are delimiters. The "unix" is the search pattern and the
"linux" is the replacement string.

By default, the sed command replaces the first occurrence of the pattern in each line and it won't replace the
second, third...occurrence in the line.

2. Replacing the nth occurrence of a pattern in a line.

Use the /1, /2 etc flags to replace the first, second occurrence of a pattern in a line. The below command
replaces the second occurrence of the word "unix" with "linux" in a line.

>sed 's/unix/linux/2' file.txt

unix is great os. linux is opensource. unix is free os.

learn operating system.


unixlinux which one you choose.

3. Replacing all the occurrence of the pattern in a line.

The substitute flag /g (global replacement) specifies the sed command to replace all the occurrences of the
string in the line.

>sed 's/unix/linux/g' file.txt

linux is great os. linux is opensource. linux is free os.

learn operating system.

linuxlinux which one you choose.

4. Replacing from nth occurrence to all occurrences in a line.

Use the combination of /1, /2 etc and /g to replace all the patterns from the nth occurrence of a pattern in a line.
The following sed command replaces the third, fourth, fifth... "unix" word with "linux" word in a line.

>sed 's/unix/linux/3g' file.txt

unix is great os. unix is opensource. linux is free os.

learn operating system.

unixlinux which one you choose.

5. Changing the slash (/) delimiter

You can use any delimiter other than the slash. As an example if you want to change the web url to another url
as

>sed 's/http:\/\//www/' file.txt

In this case the url consists the delimiter character which we used. In that case you have to escape the slash
with backslash character, otherwise the substitution won't work.

Using too many backslashes makes the sed command look awkward. In this case we can change the delimiter
to another character as shown in the below example.
>sed 's_http://_www_' file.txt

>sed 's|http://|www|' file.txt

6. Using & as the matched string

There might be cases where you want to search for the pattern and replace that pattern by adding some extra
characters to it. In such cases & comes in handy. The & represents the matched string.

>sed 's/unix/{&}/' file.txt

{unix} is great os. unix is opensource. unix is free os.

learn operating system.

{unix}linux which one you choose.

>sed 's/unix/{&&}/' file.txt

{unixunix} is great os. unix is opensource. unix is free os.

learn operating system.

{unixunix}linux which one you choose.

7. Using \1,\2 and so on to \9

The first pair of parenthesis specified in the pattern represents the \1, the second represents the \2 and so on.
The \1,\2 can be used in the replacement string to make changes to the source string. As an example, if you
want to replace the word "unix" in a line with twice as the word like "unixunix" use the sed command as below.

>sed 's/\(unix\)/\1\1/' file.txt

unixunix is great os. unix is opensource. unix is free os.

learn operating system.

unixunixlinux which one you choose.


The parenthesis needs to be escaped with the backslash character. Another example is if you want to switch
the words "unixlinux" as "linuxunix", the sed command is

>sed 's/\(unix\)\(linux\)/\2\1/' file.txt

unix is great os. unix is open source. unix is free os.

learn operating system.

linuxunix which one you choose.

Another example is switching the first three characters in a line

>sed 's/^\(.\)\(.\)\(.\)/\3\2\1/' file.txt

inux is great os. unix is open source. unix is free os.

aelrn operating system.

inuxlinux which one you choose.

8. Duplicating the replaced line with /p flag

The /p print flag prints the replaced line twice on the terminal. If a line does not have the search pattern and is
not replaced, then the /p prints that line only once.

>sed 's/unix/linux/p' file.txt

linux is great os. unix is opensource. unix is free os.

linux is great os. unix is opensource. unix is free os.

learn operating system.

linuxlinux which one you choose.

linuxlinux which one you choose.

9. Printing only the replaced lines


Use the -n option along with the /p print flag to display only the replaced lines. Here the -n option suppresses
the duplicate rows generated by the /p flag and prints the replaced lines only one time.

>sed -n 's/unix/linux/p' file.txt

linux is great os. unix is open source. unix is free os.

linuxlinux which one you choose.

If you use -n alone without /p, then the sed does not print anything.

10. Running multiple sed commands.

You can run multiple sed commands by piping the output of one sed command as input to another sed
command.

>sed 's/unix/linux/' file.txt| sed 's/os/system/'

linux is great system. unix is open source. unix is free os.

learn operating system.

linuxlinux which one you chosysteme.

Sed provides -e option to run multiple sed commands in a single sed command. The above output can be
achieved in a single sed command as shown below.

>sed -e 's/unix/linux/' -e 's/os/system/' file.txt

linux is great system. unix is open source. unix is free os.

learn operating system.

linuxlinux which one you chosysteme.

11. Replacing string on a specific line number.

You can restrict the sed command to replace the string on a specific line number. An example is
>sed '3 s/unix/linux/' file.txt

unix is great os. unix is open source. unix is free os.

learn operating system.

linuxlinux which one you choose.

The above sed command replaces the string only on the third line.

12. Replacing string on a range of lines.

You can specify a range of line numbers to the sed command for replacing a string.

>sed '1,3 s/unix/linux/' file.txt

linux is great os. unix is open source. unix is free os.

learn operating system.

linuxlinux which one you choose.

Here the sed command replaces the lines with range from 1 to 3. Another example is

>sed '2,$ s/unix/linux/' file.txt

linux is great os. unix is open source. unix is free os.

learn operating system.

linuxlinux which one you choose.

Here $ indicates the last line in the file. So the sed command replaces the text from second line to last line in
the file.

13. Replace on a lines which matches a pattern.

You can specify a pattern to the sed command to match in a line. If the pattern match occurs, then only the sed
command looks for the string to be replaced and if it finds, then the sed command replaces the string.

>sed '/linux/ s/unix/centos/' file.txt


unix is great os. unix is open source. unix is free os.

learn operating system.

centoslinux which one you choose.

Here the sed command first looks for the lines which has the pattern "linux" and then replaces the word "unix"
with "centos".

14. Deleting lines.

You can delete the lines a file by specifying the line number or a range or numbers.

>sed '2 d' file.txt

>sed '5,$ d' file.txt

15. Duplicating lines

you can make the sed command to print each line of a file two times.

>sed 'p' file.txt

16. Sed as grep command

you can make sed command to work as similar to grep command.

>grep 'unix' file.txt

>sed -n '/unix/ p' file.txt

Here the sed command looks for the pattern "unix" in each line of a file and prints those lines that has the
pattern.

You can also make the sed command to work as grep -v, just by using the reversing the sed with NOT (!).

>grep -v 'unix' file.txt


>sed -n '/unix/ !p' file.txt

The ! here inverts the pattern match.

17. Add a line after a match.

The sed command can add a new line after a pattern match is found. The "a" command to sed tells it to add a
new line after a match is found.

>sed '/unix/ a "Add a new line"' file.txt

unix is great os. unix is open source. unix is free os.

"Add a new line"

learn operating system.

unixlinux which one you choose.

"Add a new line"

18. Add a line before a match

the sed command can add a new line before a pattern match is found. The "i" command to sed tells it to add a
new line before a match is found.

>sed '/unix/ i "Add a new line"' file.txt

"Add a new line"

unix is great os. unix is open source. unix is free os.

learn operating system.

"Add a new line"

unixlinux which one you choose.

19. Change a line

The sed command can be used to replace an entire line with a new line. The "c" command to sed tells it to
change the line.
>sed '/unix/ c "Change line"' file.txt

"Change line"

learn operating system.

"Change line"

20. Transform like tr command

The sed command can be used to convert the lower case letters to upper case letters by using the transform
"y" option.

>sed 'y/ul/UL/' file.txt

Unix is great os. Unix is open source. Unix is free os.

Learn operating system.

UnixLinUx which one you choose.

Cut Command in UNIX (Linux) Examples


Cut command in UNIX (or linux) is used to select sections of text from each line of files. You can use the cut
command to select fields or columns from a line by specifying a delimiter or you can select a portion of text by
specifying the range or characters. Basically the cut command slices a line and extracts the text.

UNIX Cut Command Example

we will see the usage of cut command by considering the below text file as an example

> cat file.txt

unix or linux os

is unix good os

is linux good os

1. Write a unix/linux cut command to print characters by position?


The cut command can be used to print characters in a line by specifying the position of the characters. To print
the characters in a line, use the -c option in cut command

cut -c4 file.txt

The above cut command prints the fourth character in each line of the file. You can print more than one
character at a time by specifying the character positions in a comma separated list as shown in the below
example

cut -c4,6 file.txt

xo

ui

ln

This command prints the fourth and sixth character in each line.

2.Write a unix/linux cut command to print characters by range?

You can print a range of characters in a line by specifying the start and end position of the characters.

cut -c4-7 file.txt

x or

unix

linu

The above cut command prints the characters from fourth position to the seventh position in each line. To print
the first six characters in a line, omit the start position and specify only the end position.
cut -c-6 file.txt

unix o

is uni

is lin

To print the characters from tenth position to the end, specify only the start position and omit the end position.

cut -c10- file.txt

inux os

ood os

good os

If you omit the start and end positions, then the cut command prints the entire line.

cut -c- file.txt

3.Write a unix/linux cut command to print the fields using the delimiter?

You can use the cut command just as awk command to extract the fields in a file using a delimiter. The -d
option in cut command can be used to specify the delimiter and -f option is used to specify the field position.

cut -d' ' -f2 file.txt

or

unix

linux

This command prints the second field in each line by treating the space as delimiter. You can print more than
one field by specifying the position of the fields in a comma delimited list.
cut -d' ' -f2,3 file.txt

or linux

unix good

linux good

The above command prints the second and third field in each line.

Note: If the delimiter you specified is not exists in the line, then the cut command prints the entire line. To
suppress these lines use the -s option in cut command.

4. Write a unix/linux cut command to display range of fields?

You can print a range of fields by specifying the start and end position.

cut -d' ' -f1-3 file.txt

The above command prints the first, second and third fields. To print the first three fields, you can ignore the
start position and specify only the end position.

cut -d' ' -f-3 file.txt

To print the fields from second fields to last field, you can omit the last field position.

cut -d' ' -f2- file.txt

5. Write a unix/linux cut command to display the first field from /etc/passwd file?

The /etc/passwd is a delimited file and the delimiter is a colon (:). The cut command to display the first field in
/etc/passwd file is

cut -d':' -f1 /etc/passwd

6. The input file contains the below text


> cat filenames.txt

logfile.dat

sum.pl

add_int.sh

Using the cut command extract the portion after the dot.

First reverse the text in each line and then apply the command on it.

rev filenames.txt | cut -d'.' -f1

Top Examples of Awk Command in UNIX

Awk is one of the most powerful tools in UNIX used for processing the rows and columns in a file. Awk has built
in string functions and associative arrays. Awk supports most of the operators, conditional blocks, and loops
available in C language.

One of the good things is that you can convert Awk scripts into Perl scripts using a2p utility.

The basic syntax of AWK:

awk 'BEGIN {start_action} {action} END {stop_action}' filename

Here the actions in the begin block are performed before processing the file and the actions in the end block
are performed after processing the file. The rest of the actions are performed while processing the file.

Examples:

Create a file input_file with the following data. This file can be easily created using the output of ls -l.

-rw-r--r-- 1 center center 0 Dec 8 21:39 p1


-rw-r--r-- 1 center center 17 Dec 8 21:15 t1

-rw-r--r-- 1 center center 26 Dec 8 21:38 t2

-rw-r--r-- 1 center center 25 Dec 8 21:38 t3

-rw-r--r-- 1 center center 43 Dec 8 21:39 t4

-rw-r--r-- 1 center center 48 Dec 8 21:39 t5

From the data, you can observe that this file has rows and columns. The rows are separated by a new line
character and the columns are separated by a space characters. We will use this file as the input for the
examples discussed here.

1. awk '{print $1}' input_file

Here $1 has a meaning. $1, $2, $3... represents the first, second, third columns... in a row respectively. This
awk command will print the first column in each row as shown below.

-rw-r--r--

-rw-r--r--

-rw-r--r--

-rw-r--r--

-rw-r--r--

-rw-r--r--

To print the 4th and 6th columns in a file use awk '{print $4,$5}' input_file

Here the Begin and End blocks are not used in awk. So, the print command will be executed for each row it
reads from the file. In the next example we will see how to use the Begin and End blocks.

2. awk 'BEGIN {sum=0} {sum=sum+$5} END {print sum}' input_file

this will prints the sum of the value in the 5th column. In the Begin block the variable sum is assigned with value
0. In the next block the value of 5th column is added to the sum variable. This addition of the 5th column to the
sum variable repeats for every row it processed. When all the rows are processed the sum variable will hold the
sum of the values in the 5th column. This value is printed in the End block.

3. In this example we will see how to execute the awk script written in a file. Create a file sum_column and
paste the below script in that file
#!/usr/bin/awk -f

BEGIN {sum=0}

{sum=sum+$5}

END {print sum}

Now execute the the script using awk command as

awk -f sum_column input_file.

This will run the script in sum_column file and displays the sum of the 5th column in the input_file.

4. awk '{ if($9 == "t4") print $0;}' input_file

This awk command checks for the string "t4" in the 9th column and if it finds a match then it will print the entire
line. The output of this awk command is

-rw-r--r-- 1 pcenter pcenter 43 Dec 8 21:39 t4

5. awk 'BEGIN { for(i=1;i<=5;i++) print "square of", i, "is",i*i; }'

This will print the squares of first numbers from 1 to 5. The output of the command is

square of 1 is 1

square of 2 is 4

square of 3 is 9

square of 4 is 16

square of 5 is 25

Notice that the syntax of “if” and “for” are similar to the C language.

Awk Built in Variables:

You have already seen $0, $1, $2... which prints the entire line, first column, second column... respectively.
Now we will see other built in variables with examples.

FS - Input field separator variable:

So far, we have seen the fields separted by a space character. By default Awk assumes that fields in a file are
separted by space characters. If the fields in the file are separted by any other character, we can use the FS
variable to tell about the delimiter.

6. awk 'BEGIN {FS=":"} {print $2}' input_file


OR
awk -F: '{print $2} input_file

This will print the result as

39 p1

15 t1

38 t2

38 t3

39 t4

39 t5

OFS - Output field separator variable:

By default whenever we printed the fields using the print statement the fields are displayed with space
character as delimiter. For example

7. awk '{print $4,$5}' input_file

The output of this command will be

center 0

center 17

center 26

center 25

center 43

center 48

We can change this default behavior using the OFS variable as

awk 'BEGIN {OFS=":"} {print $4,$5}' input_file


center:0

center:17

center:26

center:25

center:43

center:48

Note: print $4,$5 and print $4$5 will not work the same way. The first one displays the output with space as
delimiter. The second one displays the output without any delimiter.

NF - Number of fileds variable:

The NF can be used to know the number of fields in line

8. awk '{print NF}' input_file


This will display the number of columns in each row.

NR - number of records variable:


The NR can be used to know the line number or count of lines in a file.

9. awk '{print NR}' input_file


This will display the line numbers from 1.

10. awk 'END {print NR}' input_file


This will display the total number of lines in the file.

String functions in Awk:


Some of the string functions in awk are:

index(string, search)
length(string)
split(string,array,separator)
substr(string, position)
substr(string,position,max)
tolower(string)
toupper(string)

Advanced Examples:

1. Filtering lines using Awk split function

The awk split function splits a string into an array using the delimiter.

The syntax of split function is


split(string, array, delimiter)

Now we will see how to filter the lines using the split function with an example.

The input "file.txt" contains the data in the following format


1 U,N,UNIX,000

2 N,P,SHELL,111

3 I,M,UNIX,222

4 X,Y,BASH,333

5 P,R,SCRIPT,444

Required output: Now we have to print only the lines in which whose 2nd field has the string "UNIX" as the 3rd
field( The 2nd filed in the line is separated by comma delimiter ).
The ouptut is:

1 U,N,UNIX,000

3 I,M,UNIX,222

The awk command for getting the output is:

awk '{

split($2,arr,",");

if(arr[3] == "UNIX")

print $0

} ' file.txt

Find Command in Unix and Linux Examples


Find is one of the powerful utility of Unix (or Linux) used for searching the files in a directory hierarchy. The
syntax of find command is
find [pathnames] [conditions]

Let see some practical exercises on using find command.

1. How to run the last executed find command?

!find

This will execute the last find command. It also displays the last find command executed along with the result
on the terminal.

2. How to find for a file using name?

find -name "sum.java"

./bkp/sum.java

./sum.java

This will find all the files with name "sum.java" in the current directory and sub-directories.

3. How to find for files using name and ignoring case?

find -iname "sum.java"

./SUM.java

./bkp/sum.java

./sum.java

This will find all the files with name "sum.java" while ignoring the case in the current directory and sub-
directories.

4. How to find for a file in the current directory only?

find -maxdepth 1 -name "sum.java"


./sum.java

This will find for the file "sum.java" in the current directory only

5. How to find for files containing a specific word in its name?

find -name "*java*"

./SUM.java

./bkp/sum.java

./sum.java

./multiply.java

It displayed all the files which have the word "java" in the filename

6. How to find for files in a specific directory?

find /etc -name "*java*"

This will look for the files in the /etc directory with "java" in the filename

7. How to find the files whose name are not "sum.java"?

find -not -name "sum.java"

./SUM.java

./bkp

./multiply.java

This is like inverting the match. It prints all the files except the given file "sum.java".

8. How to limit the file searches to specific directories?


find -name "sum.java"

./tmp/sum.java

./bkp/var/tmp/files/sum.java

./bkp/var/tmp/sum.java

./bkp/var/sum.java

./bkp/sum.java

./sum.java

You can see here the find command displayed all the files with name "sum.java" in the current directory and
sub-directories.

a. How to print the files in the current directory and one level down to the current directory?

find -maxdepth 2 -name "sum.java"

./tmp/sum.java

./bkp/sum.java

./sum.java

b. How to print the files in the current directory and two levels down to the current directory?

find -maxdepth 3 -name "sum.java"

./tmp/sum.java

./bkp/var/sum.java

./bkp/sum.java

./sum.java
c. How to print the files in the subdirectories between level 1 and 4?

find -mindepth 2 -maxdepth 5 -name "sum.java"

./tmp/sum.java

./bkp/var/tmp/files/sum.java

./bkp/var/tmp/sum.java

./bkp/var/sum.java

./bkp/sum.java

9. How to find the empty files in a directory?

find . -maxdepth 1 -empty

./empty_file

10. How to find the largest file in the current directory and sub directories

find . -type f -exec ls -s {} \; | sort -n -r | head -1

The find command "find . -type f -exec ls -s {} \;" will list all the files along with the size of the file. Then the sort
command will sort the files based on the size. The head command will pick only the first line from the output of
sort.

11. How to find the smallest file in the current directory and sub directories

find . -type f -exec ls -s {} \; | sort -n -r | tail -1

Another method using find is


find . -type f -exec ls -s {} \; | sort -n | head -1

12. How to find files based on the file type?

a. Finding socket files

find . -type s

b. Finding directories

find . -type d

c. Finding hidden directories

find -type d -name ".*"

d. Finding regular files

find . -type f

e. Finding hidden files

find . -type f -name ".*"

13. How to find files based on the size?

a. Finding files whose size is exactly 10M

find . -size 10M


b. Finding files larger than 10M size

find . -size +10M

c. Finding files smaller than 10M size

find . -size -10M

14. How to find the files which are modified after the modification of a give file.

find -newer "sum.java"

This will display all the files which are modified after the file "sum.java"

15. Display the files which are accessed after the modification of a give file.

find -anewer "sum.java"

16. Display the files which are changed after the modification of a give file.

find -cnewer "sum.java"

17. How to find the files based on the file permissions?

find . -perm 777

This will display the files which have read, write, and execute permissions. To know the permissions of files and
directories use the command "ls -l".
18. Find the files which are modified within 30 minutes.

find . -mmin -30

19. Find the files which are modified within 1 day.

find . -mtime -1

20. How to find the files which are modified 30 minutes back

find . -not -mmin -30

21. How to find the files which are modified 1 day back.

find . -not -mtime -1

22. Print the files which are accessed within 1 hour.

find . -amin -60

23. Print the files which are accessed within 1 day.

find . -atime -1

24. Display the files which are changed within 2 hours.


find . -cmin -120

25. Display the files which are changed within 2 days.

find . -ctime -2

26. How to find the files which are created between two files.

find . -cnewer f1 -and ! -cnewer f2

So far we have just find the files and displayed on the terminal. Now we will see how to perform some
operations on the files.

1. How to find the permissions of the files which contain the name "java"?

find -name "*java*"|xargs ls -l

Alternate method is

find -name "*java*" -exec ls -l {} \;

2. Find the files which have the name "java" in it and then display only the files which have "class" word in
them?

find -name "*java*" -exec grep -H class {} \;

3. How to remove files which contain the name "java".

find -name "*java*" -exec rm -r {} \;


This will delete all the files which have the word “java" in the file name in the current directory and sub-
directories.

Similarly you can apply other Unix commands on the files found using the find command. I will add more
examples as and when i found.

You might also like