Операционная система Linux предоставляет большое количество инструментов для работы с файлами. Один из таких инструментов — утилита file
, которая помогает определить тип файла. Эта утилита не полагается на расширения (например, .txt
, .jpg
, .mp4
), а анализирует содержимое файла, находя в нем специальные сигналы, характерные для определенного типа данных.
Как работает утилита file
?
Утилита file
сканирует начало файла и использует встроенные правила для его распознавания. Она может распознать бинарные файлы, текстовые файлы, изображения и многие другие типы. Это особенно полезно в случаях, когда расширение файла может быть неверным или отсутствовать вовсе.
Синтаксис
Самая простая команда для использования file
выглядит следующим образом:
file <имя_файла>
Пример:
file example.txt
Вывод команды будет что-то вроде:
example.txt: ASCII text
В этом случае мы видим, что файл example.txt
является обычным текстовым файлом с кодировкой ASCII.
Примеры
- Проверка текстового файла:
file script.sh
Результат:
script.sh: Bourne-Again shell script, ASCII text executable
Этот вывод сообщает нам, что script.sh
— это исполняемый shell-скрипт.
- Проверка изображения:
file image.png
Результат:
image.png: PNG image data, 800 x 600, 8-bit/color RGB, non-interlaced
Утилита определила файл как изображение PNG с указанием его размера и глубины цвета.
Использование ключей
Иногда нужно проверить тип файла, на который ссылается символическая ссылка. Для этого можно использовать ключ -L
. Он заставит утилиту анализировать целевой файл, а не саму ссылку.
Пример:
file -L ссылка
Определение архивов
Утилита file
также может определить тип архива:
file archive.zip
Вывод:
archive.zip: Zip archive data, at least v2.0 to extract
Проверка бинарных файлов
Для бинарных файлов утилита file
показывает, является ли файл исполняемым и для какой архитектуры он скомпилирован:
file программа
Вывод:
программа: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2
Здесь file
сообщает, что это 64-битный исполняемый файл для архитектуры x86-64.
Заключение
Утилита file
— это простой, но мощный инструмент для работы с файлами, позволяющий легко определять их типы на основе содержимого, а не расширения. Она особенно полезна в мире DevOps, где вы постоянно работаете с различными файлами и архивами.
Конечно, никто не мешает вам и дальше полагаться на привычные расширения файлов, но если хочется немного больше уверенности — всегда можно спросить у file
. Кстати, а каким бы типом утилита определила вас?