Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使file命令使用updatemime数据库命令生成的magic文件_File_Compilation_Mime Types - Fatal编程技术网

如何使file命令使用updatemime数据库命令生成的magic文件

如何使file命令使用updatemime数据库命令生成的magic文件,file,compilation,mime-types,File,Compilation,Mime Types,我使用的是Ubuntu服务器11.10 我的问题是file命令将应该具有video/mp2tmime类型的文件检测为application/octet流 以下是我所做的: 我确保/usr/share/mime/packages/freedesktop.org.xml包含正确的mp2t描述 我运行了更新mime数据库命令,该命令创建了一个新的magic文件:/usr/share/mime/magic 我发现在运行file-v时,它说它正在使用/etc/magic:/usr/share/misc/m

我使用的是Ubuntu服务器11.10

我的问题是
file
命令将应该具有
video/mp2t
mime类型的文件检测为
application/octet流

以下是我所做的:

  • 我确保
    /usr/share/mime/packages/freedesktop.org.xml
    包含正确的mp2t描述

  • 我运行了
    更新mime数据库
    命令,该命令创建了一个新的magic文件:
    /usr/share/mime/magic

  • 我发现在运行
    file-v
    时,它说它正在使用
    /etc/magic:/usr/share/misc/magic
    作为magic文件

  • 因此,我告诉
    file
    命令使用我的新魔术文件:
    file-m/usr/share/mime/magic my\u VIDEOFILE

  • 问题就从这里开始。使用新的magic文件运行
    file
    命令时,我得到以下输出:

    /usr/share/mime/magic, 1: Warning: offset `MIME-Magic' invalid
    /usr/share/mime/magic, 1: Warning: type `MIME-Magic' invalid
    /usr/share/mime/magic, 2: Warning: offset `[90:application/docbook+xml]' invalid
    /usr/share/mime/magic, 2: Warning: type `[90:application/docbook+xml]' invalid
      .
      . (921 lines removed from the output)
      .
    /usr/share/mime/magic, 1173: Warning: offset `[10:text/x-tex]' invalid
    /usr/share/mime/magic, 1173: Warning: type `[10:text/x-tex]' invalid
    file: No current entry for continuation
    
    看起来,
    文件
    命令需要的魔法文件的格式与
    更新mime数据库
    输出的魔法文件的格式不同

    我错过了什么


    如何使
    文件
    命令接受新的mime类型?

    使用共享mime类型数据库似乎是错误的方法。事实上,看起来共享MIME数据库和
    文件
    命令使用不同的数据库(格式不同)

    由于
    文件
    命令的版本太旧,因此未报告MIME类型
    video/mp2t

    Ubuntu 11.10。随
    文件
    命令的版本5.04一起提供。这无法报告
    视频/mp2t
    类型

    这就是我为解决问题所做的:

    我下载了新版本的。这个版本是5.09-2

    我安装了它:

    sudo dpkg -i libmagic1_5.09-2_amd64.deb
    
    问题解决了

    $ file MY_VIDEO_FILE --mime-type
    MY_VIDEO_FILE: video/mp2t