In GNU/Linux searching for files using the text inside those files is always a requirement. Standard 'find' command can be quickly used for that.
Generally computer users can memorize the locations of different files that they read or store. As the number of files increases, they can use descriptive filenames making it easy to guess the content by looking at the file name. However when the number of files grows higher & higher in number, it becomes a pain to remember locations or filenames. Also when a computer is used by some other person than the owner, it becomes even harder to locate some files.
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.
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.
IgnoreCase search can be done by adding "-i" attribute to grep command; check following command.
Search by partial name
find -name ""
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
# pattern
find <path> -name "<file name pattern>"
-exec grep -l "<text to search>" {} \;
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...
COMMENTS