file /usr/bin/file
, por ejemplo, no incluye la palabra "binario" en su salida en mi sistema. Si file -i
está disponible, incluye la palabra "binario". Sin -i
, puede ser más confiable comprobar la presencia de la palabra "texto".
find -type f -exec sh -c "file {} | grep text >/dev/null" \; -print
o
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
Usando file
solo será una aproximación, ya que utiliza heurística para determinar el tipo de archivo y no existe una definición estricta de lo que constituye un archivo "binario". ¿Es un archivo vacío "binario"? file
dice que es Además, hay muchas formas (normalmente poco comunes) de activar identificaciones falsas positivas mediante file
.
Otra forma sería excluir todos los archivos que tienen un conjunto de permisos de ejecución para usuarios, grupos u otros:
find . -type f ! -perm /u=x,g=x,o=x
(Si binario es igual a permisos de ejecución...)