如何确定文件的MIME类型?

我最近切换到GNOME 3,并惊讶地发现我们无法设置默认应用程序。 我正在使用Bash编写Nautilus扩展。 我想找到一个文件的MIME类型。

最初我曾经使用sed提取文件的扩展名并在其上构建代码。 然后我意识到这个命令叫做file 。 当我尝试找到file --mime-type -b mkv文件时,命令file --mime-type -b 输出application/octet-stream但是当我看到Nautilus属性窗口时,它显示正确的video/x-matroska MIME类型。

我在这里遗漏了什么? 如果没有更好的方式我可以提交mime类型的文件?

在Linux上获取MIME类型的方法有很多种,它们通常会导致不同的结果。 使用

 xdg-mime query filetype your_file 

获得与Nautilus获得的相同的MIME类型。

在/ usr / share / applications中查找应用程序的.desktop文件(即gedit)并添加MIME-Types,如下所示:

 ... MimeType=text/plain;text/wiki;text/foo; ... 

然后应该在这些文件上自动启动它们。