根据文件名选择默认应用程序

根据文件名选择默认应用程序

我有一个名为“pom.xml”的文件,我想用 intellij ide 打开它,并.xml用 打开其余文件gedit。 可以吗?

答案1

不,因此这是不可能的。原因是默认应用程序与特定的 mime 类型相关联。反过来,mime 类型由文件扩展名定义。文件扩展名定义为文件名中最后一个点后面的任何字符。因此,只能根据文件扩展名关联应用程序。

解决方法

  • 您可以创建一个 bash 脚本(在文件系统的任意位置),双击文件时会打开它。在“文件”的“首选项”中,“行为”选项卡中,您需要将“可执行文本文件”的选项更改为“运行它们”,才能使此功能正常工作。
  • 您可以创建启动器在桌面或应用程序菜单中,在特定应用程序中打开特定文件。在最近的 Ubuntu 版本中,默认情况下不再可以.desktop直接从文件管理器运行文件
  • 你可以给文件一个不同的扩展名,然后创建自己的 mime 类型并为其分配不同的默认应用程序。

答案2

是的,这是可能的。

正如 @vanadium 正确指出的那样,默认应用程序与 MIME 类型绑定。但是,这些 MIME 类型并不与文件扩展名绑定。有复杂的算法会考虑文件系统细节(例如常规文件或符号链接)、文件名(例如文件扩展名)和文件内容(二进制、ASCII 等),以确定文件的 MIME 类型。本质上,MIME 类型是文件内容的抽象描述。

所以现在问题归结为“我如何使其pom.xml具有与任何其他 *.xml 不同的 MIME 类型”?

幸运的是,你可以定义自己的 mime 类型。以下说明来自这里

假设您只想更改用户的行为,请创建以下文件:

~/.local/share/mime/packages/应用程序-xml-pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
    <mime-type type="application/xml-pom">
        <comment>Maven Project Object Model</comment>
        <icon name="application-xml"/>
        <glob-deleteall/>
        <glob pattern="pom.xml"/>
    </mime-type>
</mime-info>

更新 mime 类型数据库:

update-mime-database ~/.local/share/mime

该 MIME 类型仅匹配名为 的文件pom.xml

现在,您可以在您最喜欢的文件管理器中将应用程序与新创建的 mime 类型关联起来。

相关内容