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.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVuzbw1yW9X9XyRvIam54SD6JWbUm4BJexr7jROsb_azPL-ZBxy1CxMexcn8bkpwMaF2fZ2qVQGjvpGBMW70V1hJ0e_1P63Ht3kDtPy0KUXWUUu6xXq9HKWbDVz7bKD2m_uOl0HQ/s1600/searching+files+www.digizol.com.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_FyK6dt-frYsLMCKIHLzzIvSMqZkcDaLe2c-mK4U8T4QAOwYTj_tWDNb05z_7uaC2Xd5aoK0TXDfcrQyC6yB2ubNmMQrZy1SQeqey8weUhK_f4X689ibbmW-5z9Vh1q5Q05lJAQ/s400/Files-Folders.png)
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