Як визначити тип файла за допомогою Linux
Більшість людей дивляться на розширення файлу і потім вгадують тип файлу з цим розширенням. Наприклад, коли ви бачите файл з розширенням gif, jpg, bmp або png, ви думаєте про файл зображення, а коли ви бачите файл з розширенням zip, ви припускаєте, що файл був стиснутий з використанням стиснення zip утиліту.
Файл може використовувати одне розширення, але бути чимось зовсім іншим. У Linux з'ясуйте справжній тип файла за допомогою команди file.
Як працює команда 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»
Команда file приймає таку форму:
назва файла
Наприклад, щоб перевірити тип заголовка файлу touch.svg, виконайте наступну команду:
файл touch.svg
Висновок приблизно такий:
- svg: SVG Масштабована векторна графіка
Різні типи файлів дають різні результати, наприклад:
- Тип файла ODS: електронна таблиця OpenDocument
- Тип PDF-файлу: PDF-файл, версія 1.4
- Тип файла CSV: текст ASCII, з дуже довгими рядками, з індикаторами рядка CRLF
Команда file підтримує декілька ключів, які пропонують незначні модифікації того, як команда виводить свої результати. Перевірте сторінку підручника для додаткового контексту.
Обробка декількох файлів
Типово, команда file працює з одним файлом. Однак ви можете вказати назву файла, який містить список файлів, які буде оброблено командою file.
Наприклад, відкрийте файл з назвою testfiles за допомогою редактора nano і додайте до нього наступні рядки:
- / Тощо/пароль
- /etc/pam.conf
- / Тощо/неавтоматичного
Збережіть файл і виконайте наступну команду:
file -f testfiles
Висновок буде приблизно таким:
- / etc / passwd: ASCII
- /etc/pam.conf: ASCII
- / etc / opt: каталог
Стиснуті файли
Коли ви запускаєте команду file для стисненого файлу, ви бачите щось на зразок цього:
- zip: ZIP архів даних принаймні V2.0 для вилучення
Хоча це говорить про те, що файл є архівним, ви не знаєте його вмісту. Ви можете заглянути всередину zip-файлу, щоб побачити типи файлів у стисненому файлі. Наступна команда запускає команду file для файлів у файлі ZIP:
файл -z назва файла
Вивід тепер показує типи файлів у архіві.





