file /usr/bin/file
, ad esempio, non include la parola "binary" nel suo output sul mio sistema. Se file -i
è disponibile, include la parola "binario". Senza -i
, potrebbe essere più affidabile verificare la presenza della parola "testo".
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
sarà solo un'approssimazione poiché utilizza l'euristica per determinare il tipo di file e non esiste una definizione rigida e veloce di ciò che costituisce un file "binario". Un file vuoto è "binario"? file
dice che lo è. Inoltre, ci sono molti modi (normalmente non comuni) per attivare ID falsi positivi tramite file
.
Un altro modo potrebbe essere quello di escludere tutti i file che hanno i permessi di esecuzione impostati per utente, gruppo o altro:
find . -type f ! -perm /u=x,g=x,o=x
(Se binario equivale alle autorizzazioni di esecuzione...)