如何找到默认的文件管理器?


22

作为Linux用户,我看到某些应用程序可以请求打开路径,这将导致启动文件管理器。我想以编程方式执行此操作,但是我怎么知道哪个是默认文件管理器?有没有找到此信息的方法?任何环境变量?“文件管理器”是指允许您管理文件的应用程序:创建,重命名,创建文件夹等,例如Nautilus(在GNOME中)或Dolphin(在KDE中)。

提前致谢!

Answers:


7

没有“ Linux的默认文件管理器”之类的东西。这完全取决于您可能如何尝试打开一个。如果您询问XDG,则必须检查XDG认为该文件管理器应该是什么。对于任何其他“环境”(例如Gnome或KDE)也是如此。如果您安装了所有这些文件,则每个文件都有一个不同的“默认文件管理器”是完全可能的(很好)。

默认应用程序的情况似乎主要来自Windows。在那边,我们只有一个环境,一个Windows为我们提供了环境。因此,默认应用程序的概念实际上在整个系统范围内。Linux并非如此。

在Linux下,您可能会认为默认应用程序(例如,存储在$ EDITOR环境变量中的内容)不是“真正的”默认应用程序,只是许多编写系统工具和脚本的人所使用的约定。如果适合您的用例,请随意定义$ FILEMANAGER。


我当时在想可能有一个环境变量,实际上我想定义一个。好的答案,非常感谢。
莫林

我认为您是指XFCE而不是XDG?
Gerhard Burger 2014年


18

使用xdg-mime命令执行此操作。xdg应该与桌面环境无关(例如,xdg-open会将参数传递给正确的文件打开器)。要获取默认文件管理器,请使用:

xdg-mime query default inode/directory

资源


2
这应该是正确的答案。
crypdick

17

您可以用来xdg-open <DIR>在目录上启动文件管理器。您也许可以查询某些xdg应用程序,以了解使用了什么文件管理器。


感谢您的提示。我将尝试使用它来解决我的问题。
莫林

1

我刚遇到相同的问题。(我想发表评论,但我的声誉不够高)

我试过了xdg-open,它启动了EasyTag,这是一个ID3标签编辑器(有点有趣):-)

我试过Gerhard Burgers回答

xdg-mime query default inode/directory

dolphin.desktop就我而言,这又回来了。

因此,在我的情况下,正确的解决方案是(用“”替换“ .dektop”):

xdg-mime query default inode/directory | sed 's/.desktop//g'

但我只在正在运行的系统上对此进行测试


1

哇,令人难以置信的是,没有人在这里发布正确的答案。

Linux上的默认应用程序由Freedesktop(以前的XDG)Mimeapps Standard和该规范基于的其他几个规范处理。

Arch Linux Wiki也包含一篇容易理解的文章。您正在寻找的是mimetype的关联inode/directory


谢谢你 我使用Arch&应该考虑检查Wiki,但是没有。
Colin Keenan'4

2
我的答案怎么不正确?我发布了确切的命令来查询inode/directory与查询的关联xdg-mime...
Gerhard Burger

0

似乎每个人都提到了inode/directoryMIME类型,并且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接口的哪个进程所有者(如果您只是想通过编程器请求通过文件管理器打开路径,则无需这样做),请参见以下答案

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.