$ find / -name ‘program.c’ 2>/dev/null
$ find / -name ‘program.c’ 2>errors.txt
|Start searching from the root directory (i.e / directory)|
|Given search text is the filename rather than any other attribute of a file|
|Search text that we have entered. Always enclose the filename in single quotes.. why to do this is complex.. so simply do so.|
Note : 2>/dev/null is not related to find tool as such. 2 indicates the error stream in Linux, and /dev/null is the device where anything you send simply disappears. So 2>/dev/null in this case means that while finding for the files, in case any error messages pop up simply send them to /dev/null i.e. simply discard all error messages.
Alternatively you could use 2>error.txt where after the search is completed you would have a file named error.txt in the current directory with all the error messages in it.
$ find /home/david -name ‘index*’
$ find /home/david -iname ‘index*’
The 1st command would find files having the letters index as the beginning of the file name. The search would be started in the directory /home/david and carry on within that directory and its subdirectories only.
The 2nd command would search for the same, but the case of the filename wouldn’t be considered. So all files starting with any combination of letters in upper and lower case such as INDEX or indEX or index would be returned.