Search by partial name
find -name "<filename pattern>"
Above command is useful only if you can remember the filenames at least some parts of the file name. If you are a software developer, you know how many times you would want to search files based on the content.
Search by content
find <path> -name "<file name pattern>" -exec grep -l "<text to search>" {} \;
Above command can be used to find the files based on content search. For example to find a file with a value say "db.user" in a properties file inside "/opt/work/project" folder (including sub folders) following command can be used.
find /opt/work/project -name "*.properties" -exec grep -l "db.user" {} \;
IgnoreCase search can be done by adding "-i" attribute to grep command; check following command.
find /opt/work/project -name "*.properties" -exec grep -il "db.user" {} \;
When would content search be used?
- You remember some parts of the content but not the file name
- Find which property file contains an specific property used in your program
- Locate the Style sheet (css file) containing a specific style class or property
- Find Java class files that references some methods like "indexOf"
- and so on...