find 
find  command helps you to find files in a directory  structure much faster than ls command for
various options. It can widely be used for getting the list of files in a directory  and its sub directories
with a given condition on file time stamp, size, name and so on.
Example 1) Suppose that you want to know the entire directory  structure in a
Particular path, then use the find command as follows.
 /home/Varsha $  find   .  –type  d
./ebooks/perl
./ebooks/perl/1.Strings
./ebooks/perl/10.Subroutines
./ebooks/perl/11.Ref and REcs
./ebooks/perl/12.Packages, Libraries, and Modules
./ebooks/perl/13.Classes, Objects, and Ties
./ebooks/perl/14.Database Access
./songs/hindi/songs collection/15 jab we met
./songs/hindi/songs collection/1942 A Love Story
./songs/hindi/songs collection/20 hey baby
./songs/hindi/songs collection/22 jhoom barabar jhoom 
././songs/hindi/songs collection/26 let the music play 3++
./songs/hindi/songs collection/Aa Dekhe Zara
./songs/hindi/songs collection/Aap Kaa Suroor
./songs/hindi/songs collection/Aashiq Banaya Aap Ne
./songs/hindi/songs collection/Rockstar
./songs/hindi/songs collection/3 idiots
.
.
.
.
 ^C
It seems varsha listens to these  songs while her boss is not around .
This command searched all the directories  starting from  /home/Varsha  and displayed it.
Similarly for displaying all the files you can use   -type f option. Here the   ‘.’  In the command refers to the current directory.
You can use any directory name as the base directory for find to search
To  display everything(i:e  all
Directories and  files) use. 
find  .  - print
Example 2)
You want the output to be similar to that of ls command, use find as follows.
 /home/Varsha $  find  - type  f  -ls
244269   33 -rw-r--r--   1 Varsha  Trainee       60 Nov  9 23:58 ./ebooks/perl/1.Strings/chapter1
235915   86 -rw-r--r--   1 Varsha  Trainee      215 Nov  9 11:26 ./ebooks/perl/1.Strings/chapter2
104841   25 -rw-r--r--   1 Varsha  Trainee      554 Nov  9 11:26 ./ebooks/perl/1.Strings/chapter3
104838   32 -rw-r--r--   1 Varsha  Trainee      510 Nov  9 11:26 ./ebooks/perl/10.Subroutines/chapter1
104840   33 -rw-r--r--   1 Varsha  Trainee       55 Nov  9 11:26 ./ebooks/perl/10.Subroutines/chapter2
.. 
^C
The output you get are the values included in the following order
I-node number                    
 Size in kilobytes (1024 bytes)   
 Protection mode                  
 Number of hard links             
 User                             
 Group                            
 Size in bytes                    
 Modification time                
Example 3)
 Find also helps in retrieving the files which are a modified  n days before or modified after n days. Where  n is any integer.
Suppose you want the list of all the files which are modified   5 days  ago so that it can be removed after archiving It.
/home/varsha $ date
Fri Dec 23 21:16:06 IST 2011
/home/varsha $  find   . –type  f  -mtime +5     >file_list_5
Then use this file list(file_list_5)  to take a tar of the file, or to remove those files and save this file as a  copy of ‘which files have been archived’.
Similarly you can use -5  instead of  +5 for files modified after 5 days.
Example 4)
to find all the find all the files which are greater or less than a particular size, use –size option.
Suppose you want the list of files which are of size greater than 100kB,use find as follows.
/home/varsha $ find  .  –size  +100c
Example 5)
To find all files which are created after the modification time of a particular file,use find with -newer option.
If you want to list all the files that were created after 2013-05-31 06:25
/home/varsha/$ touch -t 201305310625 test_file
home/varsha/$ ls -lrt test_file
244269 33 -rw-r--r-- 1 Varsha Trainee 0 May 31 06:25
 
 
To find all files which are created after the modification time of a particular file,use find with -newer option.
If you want to list all the files that were created after 2013-05-31 06:25
/home/varsha/$ touch -t 201305310625 test_file
home/varsha/$ ls -lrt test_file
244269 33 -rw-r--r-- 1 Varsha Trainee 0 May 31 06:25
home/varsha/$ find . -newer  test_file
./BATCH
./BATCH/arguments.bat
./BATCH/arith.bat
./BATCH/for_loop.bat
./BATCH/if_condn.bat
./BATCH/if_condn.bat.bak./BATCH
./BATCH/arguments.bat
./BATCH/arith.bat
./BATCH/for_loop.bat
./BATCH/if_condn.bat
./misc
./misc/vim_list.txt
./PERL
./PERL/a1.txt
./PERL/a1.txt.orig
./PERL/a2.txt
./PERL/a2.txt.orig
./PERL/all_dir.txt
You can verify it by using -ls option.
No comments:
Post a Comment