Логотип

Объяснение команды file в Linux: как мгновенно определить реальный тип файла

Объяснение команды file в Linux: как мгновенно определить реальный тип файла

Расширения файлов в Linux часто вводят в заблуждение. Файл с именем script.sh может не быть скриптом. Файл с именем backup.tar.gz может не быть архивом. Поэтому администраторы Linux полагаются на команду file.

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

 

Что делает команда file (и почему это важно)

Команда file проверяет магические байты и структуру файла и сравнивает их с данными в системной базе. Она стабильно работает на:

  • Linux
  • macOS
  • FreeBSD и другие системы BSD
  • Большинство Unix-подобных систем

 

Поскольку он игнорирует расширения, его можно использовать для отладки, проверки безопасности и автоматизации.

 

Четыре команды file, которые вам действительно понадобятся

1. Определение реального типа файла

file filename

 

Пример:

file /bin/ls

 

Читать  Вышла Fish Shell 4.2 с улучшенными автопредложениями

Пример вывода:

/bin/ls: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=15dfff3239aa7c3b16a71e6b2e3b6e4009dab998, for GNU/Linux 3.2.0, stripped

 

Другой пример:

file /etc/passwd

 

Пример вывода:

/etc/passwd: ASCII text

 

Вы можете использовать это, когда

  • Скрипт не работает
  • Бинарный файл не запускается
  • Файл выглядит подозрительно

 

2. Правильное определение типа MIME

file -i filename

 

Пример:

file -i upload.bin

 

Выходной сигнал:

application/octet-stream; charset=binary

 

Это важно для:

  • Загрузка файлов
  • Веб-серверы
  • Фильтры безопасности
  • Проверка API

 

Расширения ненадежны. Надежно определение MIME.

 

3. Безопасное изучение сжатых файлов

file -z archive.gz

 

Пример:

file -z logs.tar.gz

 

Это подтверждает:

  • формат архива
  • тип сжатия

 

Работает с:

  • gzip
  • bzip2
  • xz
  • zip
  • tar-архивы

 

Это быстрая проверка безопасности перед извлечением.

 

4. Проверьте диски и блочные устройства

file -s /dev/sdX

 

Пример:

sudo file -s /dev/sda1

 

Возможный результат:

/dev/sda1: Linux rev 1.0 ext4 filesystem data

 

Полезно для:

  • Восстановление диска
  • Проверка RAID
  • Устранение неполадок LVM

 

Реальные истории об устранении неполадок

1. Сбой в работе скрипта

Скрипт развертывания с именем deploy.sh внезапно выдает ошибку разрешения.

file deploy.sh

 

Выходной сигнал:

ELF 64-bit LSB executable

 

Основная причина:

Во время неудачной операции копирования двоичный файл заменил скрипт.

Решение:

Восстановите скрипт и заблокируйте права на запись.

 

2. Поддельный PDF-файл, загруженный на веб-сервер

Пользователь загружает invoice.pdf. Приложение аварийно завершает работу при его обработке.

file invoice.pdf

 

Читать  10 примеров команды wget

Выходной сигнал:

POSIX shell script

 

Основная причина:

Файл представлял собой скрипт, замаскированный под PDF.

 

Решение:

Блокируйте загрузку на основе типа MIME с помощью file -i.

3. Диск отображается, но не монтируется

Новый диск отображается как /dev/sdb1, но не монтируется.

file -s /dev/sdb1

 

Выходной сигнал:

LVM2 PV (Linux Logical Volume Manager)

 

Основная причина:

Раздел принадлежит группе томов LVM.

Решение:

Активируйте группу томов вместо прямого монтирования.

 

4. Повреждённый архив резервной копии

При извлечении данных задание на восстановление завершается ошибкой.

file -z backup.tar.gz

 

Выходной сигнал:

gzip compressed data, truncated

 

Основная причина:

Загрузка резервной копии была прервана.

 

Решение:

Создайте резервную копию заново и добавьте проверку целостности.

 

Распространённые шаблоны администрирования, которые стоит использовать

1. Сканирование всего каталога

file *

 

Подходит для:

  • выявление неправильных файлов
  • обнаружение повреждённых данных
  • проверка загруженных файлов

 

2. Проверяйте скрипты перед выполнением

file script.sh

 

Ожидаемый результат будет следующим:

ASCII text

 

Неожиданный результат — это сигнал тревоги.

 

Что не может сделать команда file

  • Не сканирует на наличие вредоносного ПО
  • Не проверяет содержимое архива
  • Не гарантирует безопасность файлов

 

Воспринимайте это как первую проверку, а не как окончательную.

fileТаблица команд

# Определение реального типа файла

file filename

 

# Определение типа MIME

file -i filename

 

# Проверка сжатых файлов

file -z archive.gz

 

# Проверка дисков и блочных устройств

file -s /dev/sdX

 

Читать  Руководство для начинающих по использованию команды dpkg в Linux

# Сканирование всех файлов в каталоге

file *

 

# Быстрая проверка неизвестных файлов

file -i -z suspicious_file

 

Если вам больше нравится изображение, вы можете распечатать его и держать рядом с рабочим столом.

Команда Linux для отображения реального типа файла в терминале

 

Вопросы и ответы

В: Как проверить тип файла в Linux?

О: Используйте:

file filename

 

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

 

В: Как узнать MIME-тип файла в Linux?

О: Используйте:

file -i filename

 

Это безопаснее, чем использовать расширения.

 

В: Может ли команда file проверять архивы?

О: Да. Используйте:

file -z archive.gz

 

Эта функция проверяет сжатые файлы без их распаковки.

 

В: Безопасно ли использовать команду file для работы с ненадежными файлами?

О: Да. Она считывает только заголовки файлов и не выполняет их содержимое.

 

В: Может ли команда file обнаружить вредоносное ПО?

О: Нет. Она определяет только тип файла. Для обнаружения вредоносного ПО используйте сканеры безопасности.

 

Заключение

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

Вам не нужны все опции.

Если вы запомните всего четыре из них, то уже будете использовать file как профессионал:

file filename
file -i filename
file -z archive
file -s /dev/sdX

 

При устранении неполадок в Linux эта команда часто выдаёт первый правильный ответ.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Редактор: AndreyEx

Рейтинг: 5 (1 голос)
Если статья понравилась, то поделитесь ей в социальных сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Загрузка...

Спасибо!

Теперь редакторы в курсе.

Прокрутить страницу до начала