file /usr/bin/file
, por exemplo, não inclui a palavra "binary" em sua saída no meu sistema. Se file -i
estiver disponível, incluirá a palavra "binário". Sem -i
, pode ser mais confiável testar a presença da palavra "texto".
find -type f -exec sh -c "file {} | grep text >/dev/null" \; -print
ou
find -type f -exec sh -c "file {} | grep text >/dev/null" \; -ls
Usando -i
:
find -type f -exec sh -c "file -i {} | grep -v binary >/dev/null" \; -print
Usar file
será apenas uma aproximação, pois está usando heurística para determinar o tipo de arquivo e não há uma definição rápida e exata do que constitui um arquivo "binário". Um arquivo vazio é "binário"? file
diz que é. Além disso, há muitas maneiras (normalmente incomuns) de acionar IDs falsos positivos em file
.