Answers:
没有“ Linux的默认文件管理器”之类的东西。这完全取决于您可能如何尝试打开一个。如果您询问XDG,则必须检查XDG认为该文件管理器应该是什么。对于任何其他“环境”(例如Gnome或KDE)也是如此。如果您安装了所有这些文件,则每个文件都有一个不同的“默认文件管理器”是完全可能的(很好)。
默认应用程序的情况似乎主要来自Windows。在那边,我们只有一个环境,一个Windows为我们提供了环境。因此,默认应用程序的概念实际上在整个系统范围内。Linux并非如此。
在Linux下,您可能会认为默认应用程序(例如,存储在$ EDITOR环境变量中的内容)不是“真正的”默认应用程序,只是许多编写系统工具和脚本的人所使用的约定。如果适合您的用例,请随意定义$ FILEMANAGER。
哇,令人难以置信的是,没有人在这里发布正确的答案。
Linux上的默认应用程序由Freedesktop(以前的XDG)Mimeapps Standard和该规范基于的其他几个规范处理。
Arch Linux Wiki也包含一篇容易理解的文章。您正在寻找的是mimetype的关联inode/directory
。
inode/directory
与查询的关联xdg-mime
...
似乎每个人都提到了inode/directory
MIME类型,并且MIME xdg-open
在大多数情况下都可以满足您的需要(通过文件管理器以编程方式打开目录),但是有时错误的应用程序(不是文件管理器,例如Visual Studio Code)也可以关联它与inode/directory
为默认应用程序。
此外,还有一个用于D-Bus的文件管理器接口(org.freedesktop.FileManager1
在Session Bus中),可用于您的要求,因此,如果文件管理器支持此D-Bus接口,则也可以使用此接口。请确保是否可以使用它,因为并非所有文件管理器都实现了此功能,目前看来Dolphin(KDE),Nautilus(GNOME)和Deepin File Manager(DDE)实现了此D-Bus接口。并找出该D-Bus接口的哪个进程所有者(如果您只是想通过编程器请求通过文件管理器打开路径,则无需这样做),请参见以下答案