Questão Linux: use find para encontrar arquivos de texto?


Existe uma maneira de especificar find que eu só quero arquivos de texto (e não arquivos binários)? Grep tem uma opção para excluir arquivos binários, então eu pensei find provavelmente tem um recurso semelhante, mas não consegui encontrá-lo.


4


origem




Respostas:


Isso é porque grep olha para o conteúdo do arquivo.

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

6



No Ubuntu isso é find . -exec sh -c "file -b --mime {} | grep -q '^text/'" \; -print - icc97


find pode encontrar arquivos por seus metadados, mas não verificar o conteúdo. No entanto, você pode acoplá-lo com file:

find .git -type f -exec file -iN0 {} + |
awk -F '\0' '$2 ~ /^: text\// {print $1}'

(Você pode remover o | awk ... parte se você também quiser informações mais detalhadas.)


4