Операционная система ЗОСРВ «Нейтрино» > Описание базовых компонентов целевой системы > Утилиты > F > file



file

Определение типа файла (UNIX)

Синтаксис:

file [-bceikhNpPrsdLnvzZ] [-f файл_имен] [-m файл_magic] файл ...

Опции:

-b
--brief
Не выводить имя файла перед его типом.
-c
Вывести файл определения типов magic после синтаксического анализа в целях проверки. Обычно используется вместе с опцией -m для отладки нового файла определения типов перед его установкой.
-e
--exclude тест
Исключить тесты из списка подлежащих тестированию.
--exclude-quiet тест
Игнорировать неизвестные тесты.
-f файл_имен
--files-from
Считать имена файлов для анализа из файла файл_имен (по одному на строку) перед списком аргументов. Должен быть указан либо файл_имен, либо по крайней мере один аргумент имени файла; для проверки стандартного потока вывода в качестве аргумента имени файла следует использовать -.
-F строка
--separator
Использовать строку в качестве разделителя вместо :.
-i
--mime
Выводить MIME-тип файла.
--apple
Вывод Apple CREATOR/TYPE.
--extension
Вывести список расширений, разделенных косой чертой.
--mime-type
Вывести тип MIME.
--mime-encoding
Вывести кодировку MIME.
-k
--keep-going
Не останавливаться на первом соответствии.
-l
--list
Перечислить магическую силу.
-L
--dereference
Выполнить переход по символьным ссылкам, аналог одноименной опции ls.
-h
--no-dereference
Не выполнять переход по символическим ссылкам (по умолчанию).
-m файл
Альтернативный файл "магических" чисел. По умолчанию используется файл /usr/share/misc/magic.
-n
--no-buffer
Вывести имя файла перед его типом (по умолчанию).
-N
--no-pad
Не выводить дополнительный вывод.
-0
--print0
Завершать имена файлов с помощью ASCII NUL.
-p
--preserve-date
Сохранить время доступа к файлам.
-P
--parameter
Установить ограничения параметров для файлов.
-r
--raw
Отказ от вывода /ooo вместо непечатных символов.
-s
--special-files
Обращаться к блочным/символьным устройствам как к обычным файлам.
-S
--no-sandbox
Отключить песочницу системных вызовов.
-C
--compile
Скомпилировать файл, указанный с параметром -m.
-d
--debug
Вывести отладочную инфомацию.
-v
--version
Вывести версию программы и завершить работу.
-z
--uncompress
Осуществить попытку работы с содержимым сжатых файлов.
-Z
--uncompress-noreport
Показать содержимое только сжатых файлов.
--help
Вывести справку.

Платформы:

ЗОСРВ «Нейтрино»

Целевые архитектуры:

aarch64, arm, armv7, e2k, mips, ppc, x86

Описание:

Утилита file проверяет каждый аргумент файл и пытается его классифицировать. Существует три набора проверок, которые выполняются в следующем порядке:

  1. проверки файловой системы;
  2. проверки по "магическому" числу;
  3. языковые проверки.

Тип файла выводится после первой успешной проверки. Выводимый тип обычно содержит одно из следующих слов:

text
Файл содержит только символы ASCII и, вероятно, безопасен для чтения на текстовом терминале.
executable
Файл содержит результат компилирования программы в форме, доступной одной из разновидностей ядер UNIX.
data
Любые другие файлы (данные обычно бывают в "двоичной" или непечатаемой форме). Исключение составляют широко известные форматы файлов (файлы core, архивы tar), которые наверняка содержат двоичные данные.


Note: При изменении файла /usr/share/misc/magic или самой программы необходимо сохранять эти ключевые слова. Для пользователей утилиты важно, чтобы для всех файлов в каталоге, доступных для чтения, выводилось слово text.

Проверки файловой системы основаны на исследовании значения, возвращаемого системным вызовом stat(). Программа проверяет, является ли файл пустым, или каким-либо специальным файлом. Все известные типы файлов, действительные для эксплуатируемой системы (сокеты, символьные ссылки или именованные каналы (FIFO) в системах, где они реализованы), определяются интуитивно, если они определены в системном файле заголовка /usr/include/sys/stat.h.

Проверки по "магическому" числам используются для определения файлов с данными в определенных фиксированных форматах. "Магическое" число, расположенное в начальной части файла, позволяет операционной системе UNIX определить, что файл является двоичным исполняемым файлом, принадлежащим к одному из нескольких типов. Принцип "магических" чисел применяется для файлов данных. Обычно таким образом может быть описан любой файл с некоторым инвариантным идентификатором на небольшом фиксированном смещении от начала файла. Информация о таких файлах считывается из файла определения типов /usr/share/misc/magic.

Если аргумент представляется файлом ASCII, утилита file пытается определить его язык. В ходе языковых проверок выполняется анализ определенных строк, которые могут присутствовать где-либо в пределах первых нескольких блоков файла. Например, ключевое слово .br указывает, что файл вероятно является файлом ввода troff, а ключевое слово struct указывает на программу на языке С. Надежность этих проверок ниже, чем в предыдущих двух группах, поэтому они выполняются в последнюю очередь. Процедуры языковой проверки также могут определить ряд прочих файлов (таких как архивы tar) и определяют, требуется-ли пометить неизвестный файл как ascii text или data.

Файлы:

/usr/share/misc/magic
Список "магических" чисел, используемый по умолчанию.

Предостережения:

Утилита file использует несколько алгоритмов, в которых отдано предпочтение скорости, а не точности, поэтому результат для содержимого файлов в формате ASCII может быть искажен. Поддержка файлов в формате ASCII (прежде всего для языков программирования) примитивна, неэффективна и требует перекомпиляции для обновления.

Классификация:

Базовые подсистемы ЗОСРВ «Нейтрино», UNIX

В ЗОСРВ «Нейтрино» редакции 2020 утилита обновлена до версии 5.39 (замена прежней реализации)

Тематические ссылки:

/usr/share/misc/magic




Предыдущий раздел: Утилиты