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

red*_*ity 1 command-line default lubuntu settings file-format

我如何在没有任何手动 GUI 使用的情况下检查将打开具有特定文件扩展名的文件 - 例如.rb

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

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

小智 5

总结一下上面的评论,这个问题的答案是一个两步过程:

首先确定文件的MIME类型:

MIMETYPE=$(xdg-mime query filetype "<your-file-here>")
Run Code Online (Sandbox Code Playgroud)

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

xdg-mime query default "$MIMETYPE"
Run Code Online (Sandbox Code Playgroud)

例如,mime 类型可以是text/x-python,应用程序将是我系统上的gedit.desktop

你也可以把它做成单衬:

xdg-mime query default "$(xdg-mime query filetype '<your-file-here>')"
Run Code Online (Sandbox Code Playgroud)