Unix Commands for Finding
Files
Commands:
1. find
2. whereis
3. which
4. locate
[edit] find
find searches a given path for a file or folder. The
syntax is: find [path...] [expression...]
Examples: On some of the latest Unix-like OS's, the -print
option is a default and can be omitted. The following command searches
for the file 'grub.conf' starting at the root ('/') directory.
$ find / -name grub.conf
/etc/grub.conf
If you are not the administrator of the computer, you
get error messages for all the directories you are not allowed to read.
In this case do it like this for a bash shell:
$ find / -name grub.conf 2>/dev/null
/etc/grub.conf
Or like this for a csh/tcsh:
$ find / -name grub.conf >& /dev/null
/etc/grub.conf
The following command will search for all directories
named 'local'.
$ find / -name local -type d
/usr/X11R6/lib/X11/fonts/local
/usr/local
/var/cache/man/local
/var/local
Tips: Using 'exec' option executes certain commands for
each file found by find:
$ find . -name '*bak' -exec rm -i {} \;
rm: remove regular empty file `./file1.bak'? y
rm: remove regular empty file `./file2.bak'? y
rm: remove regular empty file `./file3.bak'? y
Using 'ok' has same effect but it will prompt for every
file:
$ find . -name '*~' -ok rm {} \;
< rm ... ./RMAIL~ > ? y
When using "-exec" or "-ok", a semicolon must be
used to indicate the end of the arguments (to "rm" in the example). Because
semicolon is special to the shell, it must be quoted. The above examples
quote the semicolon with a backslash.
[edit] whereis
whereis searches the normal executable and man page locations
for a specified file.
Examples:
$ whereis ls
ls: /bin/ls /usr/bin/ls /usr/man/man1/ls.1.gz /usr/share/man/man1/ls.1.gz
[edit] which
which searches the locations in your PATH variable for
a specified file. If you know a program is in your path (i.e you can run
it) this is faster than whereis.
$ which pine
/usr/bin/pineddd
[edit] locate
locate finds all filenames that match the specified query.
Examples:
$ locate make.conf
/etc/make.conf
/etc/make.conf.orig
/etc/make.conf.example
/usr/qt/3/mkspecs/linux-g++/qmake.conf
/usr/share/man/man5/make.conf.5.gz
locate however, is a GNU software and the command is not
a standard in traditional UNIX systems like Solaris. The locate command
comes standard with Linux based systems.
Have a Unix Problem
Do
you have a UNIX Question?
Unix Books :-
UNIX
Programming, Certification, System Administration, Performance Tuning Reference
Books
Return to : - Unix
System Administration Hints and Tips
(c) www.gotothings.com All material on this site is Copyright.
Every effort is made to ensure the content integrity.
Information used on this site is at your own risk.
All product names are trademarks of their respective
companies.
The site www.gotothings.com is in no way affiliated with
or endorsed by any company listed at this site.
Any unauthorised copying or mirroring is prohibited.
|