Isso porque grep
examina o conteúdo do arquivo.
find . -exec sh -c "file -b --mime-type {} | grep -q '^text/'" \; -print
Existe uma maneira de especificar para find
que eu quero apenas arquivos de texto (e não arquivos binários)? Grep
tem uma opção para excluir arquivos binários, então achei que find
provavelmente tem um recurso semelhante, mas não consegui encontrá-lo.
find
pode localizar arquivos por seus metadados, mas não confere o conteúdo. No entanto, você pode acoplá-lo com file
:
find .git -type f -exec file -iN0 {} + |
awk -F 'find .git -type f -exec file -iN0 {} + |
awk -F '%pre%' '$2 ~ /^: text\// {print $1}'
' '$2 ~ /^: text\// {print $1}'
(Você pode remover a parte | awk ...
se também quiser informações mais detalhadas.)
Tags command-line find linux shell unix