如何选择一个应用程序而不是其他应用程序来在 Linux 中打开特定的文件类型

blu*_*ggy 6 freedesktop mime-types file-opening

早些时候text/xmlfirefox我认为默认情况下我的文件是打开的。不确定这一点,因为我记不清了。然后我想我安装了geany,然后我的text/xml文件总是默认由 Geany 打开,直到我安装google-chrome. 现在我看到它们默认由google-chrome.

直到现在,我都懒得去检查与特定文件类型关联的默认应用程序是什么。

现在,当我检查我的/usr/share/applications/defaults.list文件时,我看到了:

text/html=firefox.desktop;google-chrome.desktop
text/xml=google-chrome.desktop;
application/xhtml_xml=google-chrome.desktop;
Run Code Online (Sandbox Code Playgroud)

我的默认浏览器仍然设置为firefox. 上面的第一行同时显示了 Firefox 和 Chrome,text/html但因为text/xml它只有 Chrome。

我认为早些时候它是 Geanytext/xml因为这是默认情况下 Geany 用于打开 XML 文件的原因。我不确定这一点,因为我从未检查过。

问题

  • 我想知道它是如何设置的。如何选择特定应用程序而不是另一个应用程序。
  • 还有如何";"在文件中读取分号 ( )。

我正在使用 Fedora 20 - Mate 桌面环境。

基于slm 的答案的查询

根据@slm 的回答,我看到我的 xml 文件类型与 Geany 相关联。但我看到他们用 Chrome 打开。

$ xdg-mime query default application/xml
geany.desktop
$ 
Run Code Online (Sandbox Code Playgroud)

正如我上面提到的,我的/usr/share/applications/defaults.list文件显示

text/xml=google-chrome.desktop;
Run Code Online (Sandbox Code Playgroud)

那么有什么区别,哪些应该覆盖?

slm*_*slm 7

我通常使用命令行工具xdg-mime来确定哪些应用程序与给定的 MIME 类型相关联。

$ xdg-mime query filetype IMAGE.PNG 
image/png

$ xdg-mime query default image/png
shotwell-viewer.desktop shutter.desktop
Run Code Online (Sandbox Code Playgroud)

您可以将其设为单个命令,如下所示:

$ xdg-mime query default $(xdg-mime query filetype IMAGE.PNG)
shotwell-viewer.desktop shutter.desktop
Run Code Online (Sandbox Code Playgroud)

您可以mimeopen像这样更改默认值:

$ mimeopen -d ~/test.pdf

Please choose a default application for files of type application/pdf

    1) E-book Viewer  (calibre-ebook-viewer)
    2) Document Viewer  (evince)
    3) Xournal  (xournal)
    4) GNU Image Manipulation Program  (gimp)
    5) Xpdf PDF Viewer  (xpdf)
    6) Print Preview  (evince-previewer)
    7) Inkscape  (inkscape)
    8) calibre  (calibre-gui)
    9) Other...

use application #2
Opening "/home/saml/Downloads/test.pdf" with Document Viewer  (application/pdf)
Run Code Online (Sandbox Code Playgroud)

注意:顺便说一下,分号在那里是因为给定的 MIME 类型可以有多个关联。所以text/xml可能有,google-chrome.desktop;firefox.desktop;因为它的价值将表明有 2 个应用程序可以处理该特定类型。

参考