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

click fraud protection

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

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

Команда файла Linux

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

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

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

Первый набор тестов, возвращающих действительный ответ, предлагает напечатать тип файла.

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

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

  • /etc/magic
  • /usr/share/misc/magic.mgc
  • /usr/share/misc/magic

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

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

Как использовать команду file

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

файл имя файла. 

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

файл touch.svg. 

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

  • touch.svg: изображение в формате SVG с масштабируемой векторной графикой.

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

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

Работа с несколькими файлами

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

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

  • /etc/passwd
  • /etc/pam.conf
  • /etc/opt

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

файл -f testfiles. 

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

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

Другой способ - запустить файл команду один раз, но с указанием нескольких целей. Например:

файл / etc / passwd /etc/pam.conf / etc / opt

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

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

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

файл *

Чтобы проверить каталоги, начинающиеся с буквы D (с учетом регистра), попробуйте следующее:

файл D *

Результатами могут быть, например, Рабочий стол, Документы и Загрузки.

Сжатые файлы

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

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

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

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

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