
Отhttps://linux.die.net/man/1/file:
Тесты «магии» используются для проверки файлов с данными в определенных фиксированных форматах. Каноническим примером этого является исполняемый двоичный
a.out
файл (скомпилированная программа), формат которого определен в#include <a.out.h>
и, возможно,#include <exec.h>
в стандартном каталоге include. Эти файлы имеют «магическое число», хранящееся в определенном месте около начала файла, которое сообщает операционной системе UNIX, что файл является исполняемым двоичным файлом, и какой из нескольких его типов. Концепция «магии» была применена в расширении к файлам данных. Любой файл с некоторым инвариантным идентификатором с небольшим фиксированным смещением в файле обычно может быть описан таким образом. Информация, идентифицирующая эти файлы, считывается из скомпилированного файла «магии»/usr/share/misc/magic.mgc
или файлов в каталоге/usr/share/misc/magic
, если скомпилированный файл не существует. Кроме того, если$HOME/.magic.mgc
или$HOME/.magic
существует, он будет использоваться в приоритете перед системными файлами «магии». Если/etc/magic
существует, он будет использоваться вместе с другими файлами «магии».
Достаточно справедливо. Так что если по совпадению текстовый файл содержит «магическое число», относящееся, например, к mp4
видео с соответствующим смещением… Приведет ли двойной щелчок по такому текстовому файлу к запуску видеоплеера вместо текстового редактора?
решение1
Это зависит от того - ваш рабочий стол может индексировать файлы, просматривая их MIME-тип с помощью file
. Или он может просто смотреть на суффикс файла и верить, что (см. напримерКраткий справочник по расширениям файлов и типам MIME
).
В любом случае видеоплеер сделает свое делособственныйпроверки, чтобы гарантировать правильную загрузку файла, и только наивная реализация будет смотреть только на первые несколько байтов.
Программа file
использует смесь информации (включая веса для принимаемых ею мер). Файл mpeg4 содержит много информации, которая file
может не использоваться (или не требоваться). См. напримерФормат MPEG-4 Часть 14 Аудио (M4A,M4B,M4P) и Пример восстановления, иФормат подписи MP4: пример документации и восстановления