file
est toujours la commande souhaitée. Tout fichier texte (selon son heuristique) inclura le mot "texte" dans la sortie de file
; tout ce qui est binaire n'inclura pas le mot "texte".
Si vous n'êtes pas d'accord avec l'heuristique que file
utilise pour déterminer le texte par rapport au non-texte, alors la question doit être mieux spécifiée, puisque le texte par rapport au non-texte est une question intrinsèquement vague. Par exemple, file
n'identifie pas un bloc de clé publique PGP en ASCII comme "texte", mais vous pourriez le faire (puisqu'il est composé uniquement de caractères imprimables, même s'il n'est pas lisible par l'homme).
Le manuel de diff précise que
diff détermine si un fichier est textuel ou binaire en vérifiant les premiers octets du fichier ; le nombre exact d'octets dépend du système, mais il est généralement de plusieurs milliers. Si chaque octet de cette partie du fichier n'est pas nul, diff considère le fichier comme du texte ; sinon, il considère que le fichier est binaire.