When you try to find all files that contain a certain string value, it can be very costly to check binary files that you might not want to check.
To automatically prevent your search from testing if the binary files contain the needle you can add the parameter -I
(capital i) to prevent grep
from testing them.
Using grep
, -I
will process a binary file as if it did not contain matching data, this is equivalent to the --binary-files=without-match
option.
Example
find . -type f -exec grep 'string' '{}' -s -l -I \;
The above command breaks down as follows:
find . -type f
Find all files in current directory.-exec
For each match execute the following.grep 'string' '{}'
Search the matched file'{}'
if it contains the value ‘string’.-s
Suppress error messages about nonexistent or unreadable files.-l
(lambda lower case) or--files-with-matches
Suppress normal output, instead print the name of each input file from which output would normally have been printed. The scanning will stop on the first match.- -I (i capital) or
--binary-files=without-match
Process a binary file as if it did not contain matching data.
This post is also available in: Greek