查找特定扩展名的默认应用程序


12

给定xdg-open和扩展名,是否有办法获取针对该特定扩展名设置为xdg-open的应用程序?

例如,给定xdg-open.jpg结果eog


1
您正在使用哪个操作系统?
heemayl

这是Ubuntu Trusty。
sjsam '16

Answers:


13

AFAIK操作的选择基于文件的mimetype而不是其扩展名。

至少在Ubuntu上,您应该能够使用query动作xdg-mime来显示特定mimetype的默认应用程序

$ xdg-mime query default image/jpeg
eog.desktop

您可以检查MIME类型使用特定的文件xdg-mime query filetype

$ xdg-mime query filetype kqDRdnW.jpg
image/jpeg

或使用file命令,例如file --mime-type <file>

请参阅man xdg-mime以获取更多使用信息。


可能值得向OP提及,获取文件类型jpeg的mime类型的方式是xdg-mime query filetype <file_you_want_the_mimetype_of>
the_velour_fog

@the_velour_fog好点-添加
steeldriver '16

不幸的是xdg-mime query defaultxdg-open仅调用基础工具(例如pcmanfm)并不总是有效;您在答案中使用的示例在我的LXDE系统上不返回任何内容。
史蒂芬·哈里斯

谢谢,我会在这里var="xdg-mime query default image/jpeg" && $(${var%.desktop})
优先考虑

5

要使用来查询现有文件使用的mime类型xdg-utils,它的工作方式如下:

$ xdg-mime query filetype yourfile.xxx

您还可以设置一个新的默认值,例如,通过将ThunarXfce桌面环境的现代文件管理器)设置为默认文件浏览器来更改关联的桌面条目,您应该输入:

$ xdg-mime default Thunar.desktop inode/directory

或者例如,为http(s)://互联网协议设置默认应用程序,可以使用:

$ xdg-mime default midori.desktop x-scheme-handler/http

OR

$ xdg-mime default midori.desktop x-scheme-handler/https

这不仅限于rpm基于系统的系统;它是标准桌面的一部分,并且可以在Debian上运行(例如)。不幸的是,这是设置默认值的方法。它没有说如何找到设置的值。并且xdg-mime query default并不总是报告如果xdg-open调用底层桌面程序(例如,pcmanfm在LXDE上)将如何处理。
史蒂芬·哈里斯

@StephenHarris我认为选项可能会有所不同。谢谢你告诉我。
FarazX

这应该是公认的答案。
navigaid
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.