Определите тип файла с помощью команды File Linux

Большинство людей смотрят на расширение файла, а затем угадывают тип файла с этим расширением. Например, когда вы видите файл с расширением gif, jpg, bmp или png, вы думаете о файле изображения, а когда вы видите файл с расширением zip, вы предполагаете, что файл был сжат с помощью утилиты сжатия zip ,

В действительности, файл может иметь одно расширение, но быть чем-то совершенно другим. В Linux вы узнаете истинный тип файла, используя файл команда.

Как работает команда File

Команда file выполняет три набора тестов для файла:

  • Тесты файловой системы
  • Магические тесты
  • Языковые тесты

Первый набор тестов для возврата правильного ответа приводит к печати типа файла.

Тесты файловой системы проверяют отдачу от системного вызова stat. Программа проверяет, является ли файл пустым и является ли он специальным файлом. Если тип файла найден в системном заголовочном файле, он возвращается как допустимый тип файла.

Магические тесты проверяют содержимое файла и, в частности, несколько байтов в начале, которые помогают определить тип файла. Различные файлы используются, чтобы помочь сопоставить файл с его типом файла, и они хранятся в:

/ И т.д. / магия
/usr/share/misc/magic.mgc
/ USR / доли / разное / магия

Переопределите эти файлы, поместив файл в вашу домашнюю папку с именем $ HOME / .magic.mgc или $ HOME / .magic.

Финальные тесты — языковые тесты. Файл проверяется, чтобы увидеть, является ли он текстовым файлом. Тестируя первые несколько байтов файла, тест может определить, является ли файл ASCII, UTF-8, UTF-16 или другим форматом, который идентифицирует файл как текстовый файл. Когда выводится набор символов, файл проверяется на разных языках.

Если ни один из тестов не работает, выводом являются данные.

Как использовать команду «Файл»

Команда file может быть использована следующим образом:

имя файла

Например, представьте, что у вас есть файл с именем file1, и вы запускаете следующую команду:

файл file1

Вывод примерно такой:

file1: данные изображения PNG, 640 x 341, 8-битный / цветной RGB, без чередования

Выходные данные определяют, что file1 — это файл изображения или, точнее, файл переносимой сетевой графики (PNG).

Окно SSH, показывающее команду FILE.

Различные типы файлов дают разные результаты:

  • Тип файла ODS: Электронная таблица OpenDocument
  • Тип файла PDF: PDF документ, версия 1.4
  • Тип файла CSV: Текст ASCII, с очень длинными строками, с индикаторами строки CRLF

Настройте вывод из команды File

По умолчанию команда file предоставляет имя файла и все детали над файлом. Если вы хотите, чтобы только детали без имени файла повторялись, используйте следующий переключатель:

файл -b файл1

Вывод примерно такой:

Данные изображения PNG, 640 x 341, 8-битный / цветной RGB, не чересстрочный

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

файл -F '|' file1

Вывод примерно такой:

file1 | Данные изображения PNG, 640 x 341, 8-битный / цветной RGB, не чересстрочный

Обработка нескольких файлов

По умолчанию вы используете команду file для одного файла. Однако вы можете указать имя файла, которое содержит список файлов, которые будут обработаны командой file.

Например, откройте файл с именем testfiles с помощью редактора nano и добавьте в него следующие строки:

  • / И т.д. / пароль
  • /etc/pam.conf
  • / И т.д. / неавтоматического

Сохраните файл и выполните следующую команду:

file -f testfiles

Результат будет примерно таким:

  • / etc / passwd: текст ASCII
  • /etc/pam.conf: текст ASCII
  • / etc / opt: каталог

Сжатые файлы

По умолчанию, когда вы запускаете команду file для сжатого файла, вы видите что-то вроде этого:

file.zip: ZIP архив данных, по крайней мере V2.0 для извлечения

Хотя это говорит о том, что файл является архивом, вы не знаете его содержимого. Вы можете заглянуть внутрь zip-файла, чтобы увидеть типы файлов в сжатом файле. Следующая команда запускает команду file для файлов внутри ZIP-файла:

файл -z имя файла

Вывод теперь показывает типы файлов файлов в архиве.

Большинство людей используют команду file, чтобы найти основной тип файла. Чтобы узнать больше о возможностях, которые предлагает команда file, введите в окне терминала следующее:

мужской файл

Эта команда открывает документацию по программному обеспечению Linux, включенную в систему.

Ссылка на основную публикацию