Is there a way to specify to find
that I only want text files (and not binary files)? Grep
has an option to exclude binary files, so I thought find
probably has a similar feature, but I've been unable to find it.
2 Answers
That's because grep
looks at the file's contents.
find . -exec sh -c "file -b --mime-type {} | grep -q '^text/'" \; -print
-
In Ubuntu this is
find . -exec sh -c "file -b --mime {} | grep -q '^text/'" \; -print
– icc97Jul 4, 2012 at 21:28
find
can find files by their metadata, but not check contents. However, you can couple it with file
:
find .git -type f -exec file -iN0 {} + |
awk -F '\0' '$2 ~ /^: text\// {print $1}'
(You can remove the | awk ...
part if you also want more detailed information.)