В предыдущем уроке touch создала файл без расширения. В Linux имя не обязано описывать содержимое: файл funny.gif не обязательно является изображением GIF.
Командная строка · Урок 6
file
Научитесь определять вероятный тип содержимого файла, не полагаясь на его имя или расширение.
Команда file исследует файл и сообщает его вероятный тип:
$ file banana.jpg
banana.jpg: JPEG image data
Почему расширения недостаточно
Инструментам Linux обычно не нужно расширение для определения типа. Сценарий оболочки может называться backup, текст — README, а изображение может иметь вводящее в заблуждение расширение. file исследует свойства вроде метаданных файловой системы и распознаваемых шаблонов содержимого.
$ file README
README: ASCII text
$ file /bin/ls
/bin/ls: ELF 64-bit LSB executable
Результат — классификация, а не гарантия. Необычный, неполный или повреждённый файл может получить общее описание data вместо точного типа.
Файл report.jpg может не содержать изображение. Какая команда проверит вероятный тип содержимого?
Проверка нескольких файлов
Несколько файлов можно проверить сразу:
$ file notes.txt image.png archive.tar.gz
notes.txt: ASCII text
image.png: PNG image data
archive.tar.gz: gzip compressed data
Можно передать и подстановочный шаблон оболочки. Сначала оболочка раскрывает * в подходящие имена, затем file исследует их:
$ file *
Какая команда просит file проверить все нескрытые имена текущего каталога, совпавшие с *?
Вывод MIME-информации
Параметр -i печатает сведения в стиле MIME: тип медиа и, если возможно, кодировку. Такой вид полезен программам, ожидающим значения вроде text/html.
$ file -i index.html
index.html: text/html; charset=us-ascii
Какая команда выводит MIME-информацию для index.html?
Полезные параметры file
-i: показать MIME-информацию.-b: краткий режим без имени файла в выводе.-L: следовать символическим ссылкам и классифицировать их цели.-z: попытаться исследовать содержимое сжатых файлов.
Например:
$ file -b notes.txt
ASCII text
Какая команда классифицирует notes.txt, но не выводит его имя?
Урок завершён
Вы завершили file
Теперь вы умеете с помощью file исследовать вероятное содержимое файла.
Классифицировать файл, не доверяя расширению.
Проверять несколько путей одной командой.
Запрашивать MIME-информацию.
Настраивать обработку ссылок, сжатых данных и подписей вывода.
Сохраните прогресс
Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.
Создать бесплатный аккаунт