是否可以通过 Ubuntu 中的应用程序图标(应用程序或 Dock)找到该应用程序的运行路径或运行命令?
例如,一些应用程序是可移植的并且是手动添加的,而不是来自 Ubuntu 软件商店。
答案1
简短回答
您正在寻找的信息可以在应用程序的 .desktop 文件中找到。
- 在系统上找到包含以下
Name=
行中显示的应用程序名称的 .desktop 文件 - 打开该桌面文件并找到该行上的可执行文件的名称
Exec=
。
长答案和背景
Gnome Shell 应用程序菜单中的每个图标都与磁盘上的 .desktop 文件相对应。.desktop 文件是一个带有 .desktop 扩展名的普通文本文件。此文件向桌面环境提供有关如何运行程序、使用哪个图标等的信息。
在以 开头的行中Exec=
,说明了可执行文件。可执行文件是运行以启动程序的文件。通常会指定可执行文件的完整路径名,直接为您提供所需信息。如果未指定完整路径名,则可执行文件必须是搜索路径中的应用程序。否则,.desktop 文件将不起作用,即单击应用程序菜单中的图标将不会启动该程序。
要了解可执行文件的完整路径(您只知道文件名),请使用该which
命令。例如,
which firefox
将告知您可执行文件在文件系统上的位置。
最后但并非最不重要的一点是,您需要找到 .desktop 文件,以便能够找到您正在寻找的路径信息。.desktop 文件通常位于两个位置之一。系统范围的 .desktop 文件位于 /usr/share/applications 下。只有当前用户有权访问的 .desktop 文件位于 ~/.local/share/applications 下。对于同名的桌面文件,本地用户目录中的文件将具有优先权并出现在应用程序菜单中。
通过 snap 软件包系统安装的程序的 .desktop 文件将位于不同位置。您可以使用以下命令列出系统上的所有 .desktop 文件
locate .desktop
要逐页查看,您可以使用less
命令。
locate .desktop | less
有时可能无法立即看出应用程序菜单中的哪个图标属于哪个桌面菜单。应用程序菜单显示Name=
桌面文件中行上提供的应用程序的名称。使用一些 bash 魔法,您可以在所有 .desktop 文件中搜索该名称以找到包含该名称的文件。例如,这是一种识别纸牌游戏“AisleRiot Solitaire”的 .desktop 文件的简单方法,知道 Gnome Shell 显示 AisleRiot Soli..
$ grep "AisleRiot" $(locate .desktop) 2> /dev/null
/usr/share/applications/sol.desktop:Name=AisleRiot Solitaire