'file --mime-type' против 'mimetype' для файлов php

Я пытаюсь понять разницу между file --mime-type и mimetype. Они дают мне разные результаты на Ubuntu 12.04.4 LTS для этого простого php-файла.

<?php
  echo 'Hello world!';
?>

Теперь, когда я использую mimetype и file для получения типа файла, я получаю:

$ mimetype -b test.php
application/x-php

$ file -b --mime-type test.php
test/x-php

Этот вопрос ( 'file --mime-type' и 'mimetype «Команды, возвращающие разные результаты ), говорят, что file использует /etc/mime.types, однако:

$ grep php /etc/mime.types
application/x-httpd-php                         phtml pht php
application/x-httpd-php-source                  phps
application/x-httpd-php3                        php3
application/x-httpd-php3-preprocessed           php3p
application/x-httpd-php4                        php4
application/x-httpd-php5                        php5

Мне очень любопытно, почему file видит его как текстовый файл. Это вызывает у меня проблемы в Rails, так как MIME-тип Ruby также видит его как приложение типа.

0
задан 28 February 2014 в 17:30

1 ответ

Согласно странице справочника file не использует /etc/mime.types но скомпилированные определения от /usr/share/misc/magic.mgc, определения простого текста от /etc/magic и некоторые другие файлы.

Можно получить исходный код для /usr/share/misc/magic.mgc от исходного кода file пакет (взглянули в magic/ подпапка).

Если Вы хотите file возвратиться application/x-php добавьте следующее к /etc/magic:

# PHP scripts
# Ulf Harnhammar <ulfh@update.uu.se>
0       search/1/c      =<?php                  PHP script text
!:mime  application/x-php
0       search/1        =<?\n                   PHP script text
!:mime  application/x-php
0       search/1        =<?\r                   PHP script text
!:mime  application/x-php
0       search/1/w      #!\ /usr/local/bin/php  PHP script text executable
!:mime  application/x-php
0       search/1/w      #!\ /usr/bin/php        PHP script text executable
!:mime  application/x-php
# Smarty compiled template, http://www.smarty.net/
# Elan Ruusamäe <glen@delfi.ee>
0       string  =<?php\ /*\ Smarty\ version     Smarty compiled template
>24     regex   [0-9.]+                         \b, version %s
!:mime  application/x-php
0
ответ дан 28 February 2014 в 17:30

Другие вопросы по тегам:

Похожие вопросы: