我使用的是Ubuntu Server 11.10。
我的问题是file
命令检测到应该将video/mp2t
mime-type设置为application/octet-stream
的文件
所以这就是我所做的:
我确保/usr/share/mime/packages/freedesktop.org.xml
包含正确的mp2t描述。
我运行了update-mime-database
命令,除其他外,还创建了一个新的魔术文件:/usr/share/mime/magic
。
我发现在运行file -v
时,它说它使用/etc/magic:/usr/share/misc/magic
作为魔术文件。
所以,我告诉file
命令使用我的新魔法文件:file -m /usr/share/mime/magic MY_VIDEOFILE
以下是问题的起点。使用我的新魔术文件运行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
file
命令看起来像魔术文件的格式与update-mime-database
输出的魔术文件的格式不同。
我在这里错过了什么?
如何让file
命令接受新的mime类型?
答案 0 :(得分:1)
使用共享MIME类型数据库似乎是错误的方法。事实上,它看起来像共享MIME数据库和file
命令使用单独的数据库(具有不同的格式)。
由于video/mp2t
命令版本过旧,未报告MIME类型file
。
Ubuntu 11.10。附带file
命令的5.04版。这无法报告video/mp2t
类型。
这就是我为解决问题所做的工作:
我下载了libmagic1 deb package的更新版本。这个版本的版本是5.09-2。
我安装了它:
sudo dpkg -i libmagic1_5.09-2_amd64.deb
问题解决了!
$ file MY_VIDEO_FILE --mime-type
MY_VIDEO_FILE: video/mp2t