Главная > Операционные системы > UNIX
Описание: Системы BSD используют соглашения об именовании файлов, для того, чтобы было проще определить чем является файл. Однако кандидат должен понимать, что это только соглашения и уметь использовать базу данных magic для определения того, чем является файл. Практика: file(1),
Комментарий
Команда file(1) предназначена для того, чтобы определить тип файла.
Как видите, команда file(1) в состоянии
распознать тип файла даже если он лишён расширения. Делает это она
при помощи некоторой базы данных с «магическими»
числами:
Первым делом команда file(1) пытается выяснить чем собственно является файл не изучая его содержимого, при помощи системного вызова stat(2). Таким образом определяется является ли файл файлом, каталогом, символьной ссылкой, сокетом, устройством или именованным каналом. Если это файл, то не пуст ли он.
Затем, если это файл, изучается его содержимое. На этой стадии
выясняется является ли этот файл исполнимым, если да, то в каком
формате. Ниже я скопировал исполнимый файл
Как видите, file отличает для какой операционной системы
скомпилирована программа. Правила, по которым она это делает, как
уже говорилось, прописаны в базе данных
В базе
#------------------------------------------------------------------------------ # pdf: file(1) magic for Portable Document Format # 0 string %PDF- PDF document >5 byte x \b, version %c >7 byte x \b.%c
Главная > Операционные системы > UNIX |