Informalmente, molti di noi comprendono che esistono file "binari" (file oggetto, immagini, filmati, file eseguibili, formati di documenti proprietari, ecc.) E file "di testo" (codice sorgente, file XML, file HTML, e-mail, ecc.) .Come faccio a distinguere tra file "binari" e "testo"?
In generale, è necessario conoscere il contenuto di un file per poter fare qualcosa di utile con esso e formare quel punto di vista se la codifica è 'binaria' o 'testo', non importa . E naturalmente i file memorizzano solo byte di dati in modo che siano tutti "binari" e "testo" non significa nulla senza conoscere la codifica. Eppure, è ancora utile parlare di file "binari" e "di testo", ma per evitare di offendere qualcuno con questa definizione imprecisa, continuerò a usare virgolette "spaventose".
Tuttavia, ci sono vari strumenti che funzionano su una vasta gamma di file, e in termini pratici, si vuole fare qualcosa di diverso in base al fatto che il file sia 'testo' o 'binario'. Un esempio di questo è uno strumento che emette i dati sulla console. Il semplice 'testo' apparirà bene ed è utile. I dati "binari" incasinano il tuo terminale e generalmente non sono utili da guardare. GNU grep utilizza almeno questa distinzione quando determina se deve generare corrispondenze con la console.
Quindi, la domanda è, come si dice se un file è "testo" o "binario"? E per restringere è ulteriormente, come si fa a dire su un Linux come file system? Non sono a conoscenza di alcun metadato del filesystem che indica il "tipo" di un file, quindi la domanda diventa ulteriormente, ispezionando il contenuto di un file, come faccio a sapere se è "testo" o "binario"? E per semplicità, consente di limitare 'testo' per significare caratteri che sono stampabili sulla console dell'utente. E in particolare come vorresti implementare lo ? (Pensavo che questo fosse implicito in questo sito, ma immagino che sia utile, in generale, essere puntato sul codice esistente che fa questo, avrei dovuto specificare), non sto veramente dopo quali programmi esistenti posso usare per fare Questo.
non si dice cosa sia il "nostro software", rallentando l'analisi umana. – vwvan