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