如何以编程方式获取与给定文件扩展名关联的程序?

如何以编程方式获取与给定文件扩展名关联的程序?

例如,在不使用任何手动 GUI 的情况下,我怎样才能检查将打开具有特定文件扩展名的文件.rb

不是重复的如何全局更改文件关联?因为我的是关于编程读取,而不是以任何方式改变,包括通过 GUI 手动读取(尽管https://askubuntu.com/a/289339/349903提示解析一些配置文件集可能会给出答案)

为了避免 XY 问题:我有系统安装脚本,它工作正常,只是 Okular 最终与.rb.py.txt其他文本文件相关联,而不是与文本编辑器相关联。我想重新运行安装脚本并记录现在在每个步骤之后打开特定文件扩展名的内容。我希望这能让我调试出了什么问题。

答案1

总结上面的评论,这个问题的答案分为两个步骤:

首先确定文件的 MIME 类型:

MIMETYPE=$(xdg-mime query filetype "<your-file-here>")

然后获取与该类型关联的默认应用程序:

xdg-mime query default "$MIMETYPE"

因此 mime 类型可以是文本/x-python例如,应用程序将是桌面编辑在我的系统上。

您也可以将其变成一行:

xdg-mime query default "$(xdg-mime query filetype '<your-file-here>')"

相关内容