2012-02-06 376 views
2

我正在使用Ubuntu Server 11.10。如何使文件命令使用由update-mime-database命令生成的魔術文件

我的問題是,file命令檢測應該有過video/mp2t MIME類型文件作爲application/octet-stream

因此,這裏是我做過什麼:

  1. 我確信/usr/share/mime/packages/freedesktop.org.xml包含正確的mp2t說明。

  2. 我運行了update-mime-database命令,其中包括創建了一個新的魔術文件:/usr/share/mime/magic

  3. 我發現當運行file -v時,它說它使用/etc/magic:/usr/share/misc/magic作爲魔術文件。

  4. 所以,我告訴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類型?

回答

1

使用共享的MIME類型數據庫似乎是錯誤的方法。實際上,它看起來像共享MIME數據庫和file命令使用單獨的數據庫(具有不同的格式)。

由於file命令的版本過舊,未報告MIME類型video/mp2t

Ubuntu 11.10。附帶版本5.04的file命令。這是無法報告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