Правильный способ определения типа файла - использовать команду file (1).
Вам также необходимо знать, что файлы в кодировке UTF-8 являются «текстовыми» файлами, но могут содержатьданные не в формате ASCII.Другие кодировки также имеют эту проблему.В случае текста, закодированного с помощью кодовой страницы , может быть невозможно однозначно определить, является ли файл текстовым или нет.
Команда file (1) рассмотрит структуруфайла, чтобы попытаться определить, что он содержит - из справочной страницы file (1):
Тип напечатанного файла обычно содержит одно из слов text (файл содержит только печатные символы и несколько общих управляющих символов и, вероятно, безопасен для чтения на терминале ASCII), исполняемый файл (файл содержит результат компиляции программыв форме, понятной какому-либо ядру UNIX или другому), или data , означающей что-либо еще (данные обычно являются «двоичными» или не распечатываются).
Что касается различных кодировок символов, на справочной странице file (1) есть следующее:
Если файл не соответствует ни одной из записей в магическом файле, он проверяется,это похоже на текстовый файл.Наборы символов ASCII, ISO-8859-x, 8-разрядные расширенные ASCII, отличные от ISO (например, используемые в системах Macintosh и IBM PC), кодировка Unicode в кодировке UTF-8, кодировка Unicode в кодировке UTF-16 и символы EBCDICмогут отличаться различными диапазонами и последовательностями байтов, которые составляют печатный текст в каждом наборе.Если файл проходит какой-либо из этих тестов, сообщается его набор символов.Файлы ASCII, ISO-8859-x, UTF-8 и расширенный ASCII идентифицируются как «текстовые», поскольку они будут в основном читаемы практически на любом терминале;UTF-16 и EBCDIC являются только «символьными данными», потому что, хотя они и содержат текст, для его чтения требуется текст, который требуется перевести.
Таким образом, некоторый текст будет идентифицирован как текст , но некоторые могут быть идентифицированы как символьные данные .Вам нужно будет самостоятельно определить, имеет ли это значение для вашего заявления, и предпринять соответствующие действия.