10 способов определить типы файлов с помощью командной строки

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

Метод 1: использование команды file
Команда file — это универсальный инструмент, позволяющий определить тип файла путем изучения его содержимого и метаданных. Просто запустите file <filename>, чтобы получить подробную информацию о типе файла. Например:

$ file image.jpg
image.jpg: JPEG image data, JFIF standard 1.01, etc.

Метод 2: проверка расширений файлов
Во многих случаях расширение файла само по себе дает четкую подсказку о типе файла. Вы можете извлечь расширение из имени файла с помощью различных команд, таких как basenameи grep. Например:

$ filename="document.pdf"
$ echo "${filename##*.}"
pdf

Метод 3: использование команды xdg-mime
Команда xdg-mimeполезна для определения типов файлов на основе базы данных MIME. Запустите xdg-mime query filetype <filename>, чтобы узнать тип файла. Например:

$ xdg-mime query filetype image.png
image/png

Метод 4: проверка магических чисел
Файлы часто содержат магические числа, представляющие собой определенные последовательности байтов в начале, которые могут указывать тип файла. Вы можете использовать команду hexdumpдля проверки этих чисел. Например:

$ hexdump -C -n 4 image.png
00000000  89 50 4e 47                                       |.PNG|

Метод 5: анализ подписей файлов
Подобно магическим числам, подписи файлов представляют собой уникальные шаблоны байтов, которые идентифицируют типы файлов. Команда file, о которой мы упоминали ранее, также использует подписи файлов. Вы также можете использовать специальные инструменты, такие как dutiили TrID, для анализа подписей файлов.

Метод 6: использование команды mimetype
Команда mimetype— еще один удобный инструмент для определения типов файлов на основе их содержимого. Выполните mimetype <filename>, чтобы получить MIME-тип файла. Например:

$ mimetype audio.mp3
audio/mp3

Метод 7: проверка с помощью libmagic
Библиотека libmagicпредоставляет мощный API для идентификации типов файлов. Вы можете использовать его в своих собственных сценариях или программах. Многие языки программирования, включая Python, имеют привязки для libmagic.

Метод 8: проверка заголовков файлов
Заголовки файлов содержат важную информацию о типе файла. Вы можете использовать команду head, чтобы просмотреть первые несколько байтов файла и определить его тип. Например, для файла PDF:

$ head -c 4 document.pdf
%PDF

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

$ exiftool image.jpg
File Type                       : JPEG

Метод 10: проверка ассоциаций файлов
В некоторых системах ассоциации файлов сопоставляют определенные расширения файлов с соответствующими приложениями. Вы можете использовать эту информацию для определения типов файлов. Например, в Linux вы можете проверить файл /usr/share/applications/defaults.list.

К этому моменту вы должны иметь четкое представление о различных методах определения типов файлов с помощью командной строки. Независимо от того, проверяете ли вы заголовки файлов, анализируете магические числа или используете специализированные инструменты, такие как exiftool, командная строка предлагает множество вариантов идентификации типа файла. Не забудьте поэкспериментировать с различными техниками и выбрать тот, который лучше всего соответствует вашим потребностям!