Linux

為什麼xdg-mime query filetype ...找不到新添加的文件類型?

  • February 17, 2018

我安裝了一個新的文件類型來共享 MIME 數據庫。但xdg-mime query filetype不能分辨新類型。這個問題只發生在我自己的不使用 GNOME 或 KDE 作為其桌面的 Linux 作業系統上。在 Ubuntu 上,同樣的過程執行良好。

我發現它xdg-mime query filetype在我的作業系統的底層使用了“file -i filename”,但在 Ubuntu 上使用了 gnomevfs。

這是我的步驟:

  1. 為我的新文件類型寫了一個 xml 文件my_file.xml
  2. xdg-mime install my_file.xml
  3. xdg-mime query filetype<要查詢的文件名> …. 無輸出 :-(

我檢查/usr/share/mime/applications並在那裡找到了 update-mime-database 生成的 xml 條目。並且 C APIg_file_info_get_content_type()可以獲得正確的 mime 類型。

因此,shared-mime-info 似乎已成功更新。但是“文件”命令仍然失敗,為什麼?

這是我的xml文件:

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'&gt;
   &lt;mime-type type="application/vnd.xxx.xxx.xxx"&gt;
       &lt;comment&gt;xxxx&lt;/comment&gt;
       &lt;glob pattern="*.dcf"/&gt;
   &lt;/mime-type&gt;
&lt;/mime-info&gt;

我想我找到了答案。在我的系統上“xdg-mime query filetype …”使用“file”命令來獲取文件類型,而在 ubuntu 上它使用“gnomevfs”。

似乎“file”命令不檢查 shared-mime-info 的 xml 條目,而是查看文件“/user/share/file/magic”以獲取文件 MIME 類型。

如果我在 Ubuntu 上使用“文件”命令,它也無法告訴我正確的 MIME 類型。

我將研究如何編輯這個魔法文件。

嘗試安裝包含該實用程序的http://search.cpan.org/dist/File-MimeInfo/(或您的發行版包) 。mimetype

安裝此軟體包後,xdg-mime(在 Arch Linux 上測試版本 1.1.0 rc1)現在應該檢測到mimetype確實使用 XDG 共享 mime 資訊數據庫)可用,並使用它而不是退回到file -i.

引用自:https://unix.stackexchange.com/questions/9856