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.

link|improve this question

feedback

2 Answers

up vote 5 down vote accepted

That's because grep looks at the file's contents.

find . -exec sh -c "file -b --mime-type {} | grep -q '^text/'" \; -print
link|improve this answer
feedback

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.)

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.