Утилита file в Linux

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

Назначение

Основное назначение утилиты file — анализ файловой структуры и вывод информации о типе файла: текстовый, бинарный, исполняемый и т.д. Она полезна в случае, когда расширение файла может быть ненадежным показателем его содержимого. Например, файл с расширением .txt может оказаться двоичным или наоборот.

Синтаксис

Общий синтаксис команды:

file [опции] файл1 файл2 ...

Полный список команд и опций

ОпцияОписание
-bВыводит только описание типа файла, без имени файла.
-iПоказывает MIME-тип файла.
-LСледует за символическими ссылками (отображает тип файла, на который указывает ссылка).
-sПроверяет файлы блоков или специальных устройств.
-zАнализирует сжатые файлы.
--helpВыводит справочную информацию по использованию утилиты.
-f [файл]Анализирует список файлов, указанный в текстовом файле.
--versionВыводит текущую версию утилиты file.

Примеры использования

1. Определение типа файла:

file example.txt

Вывод может быть таким:

example.txt: ASCII text

2. Анализ сжатого файла:

file -z archive.tar.gz

Вывод:

archive.tar.gz: gzip compressed data, from Unix, last modified: Fri Sep 10 12:00:00 2021

3. Определение MIME-типа:

file -i picture.png

Вывод:

picture.png: image/png; charset=binary

4. Вывод только описания типа файла:

file -b example.txt

Вывод:

ASCII text

5. Анализ нескольких файлов:

file file1 file2 file3

Вывод:

file1: ASCII text
file2: PNG image data, 800 x 600, 8-bit/color RGB, non-interlaced
file3: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked

6. Анализ списка файлов из текстового файла:

file -f filelist.txt

Где filelist.txt — это текстовый файл с именами файлов, которые необходимо проанализировать.

Заключение

Утилита file — это полезный инструмент, который может предоставить важную информацию о содержимом файла, что особенно полезно в ситуациях, когда расширение файла может ввести в заблуждение. Она является стандартной частью большинства Linux-дистрибутивов и часто используется в автоматизированных скриптах и при работе с различными типами файлов.