当我将鼠标悬停在快速启动图标上时,会显示底层应用程序的名称。但我如何才能找到真正被调用的应用程序?
在 MS Windows 环境中,我会右键单击图标并选择属性 - 然后就会显示要执行的文件的路径。
出现这种情况是因为我的“文件”快速启动图标没有任何作用,经过大量研究才意识到该图标实际上链接到 /usr/bin/nautilus。
答案1
在 GNU/Linux 中我们使用.desktop
又称为“桌面条目”的文件,它们位于:
/usr/share/applications/
也可以按用户查找:
~/.local/share/applications/
从这里:
桌面条目规范为应用程序集成到桌面环境提供了标准。桌面条目是配置文件,描述了应用程序如何启动以及它可以处理哪些数据。它们还配置了应用程序如何以图标形式显示在菜单中,这受相关菜单规范标准的约束。
您也可以使用命令来找到它们locate
:
locate nautilus.desktop
或者
locate nautilus | grep ".desktop"
让我们看看里面有什么nautilus.desktop
:
$ cat /usr/share/applications/nautilus.desktop
[Desktop Entry]
NotShowIn=Unity;
Name=Files
Comment=Access and organize files
Keywords=folder;manager;explore;disk;filesystem;
Exec=nautilus --new-window %U
如您所见,名称是“Files”,但它会执行nautilus --new-window %U
。对于命令nautilus
本身,您应该知道我们可以使用它which
来找出它的位置:
$ which nautilus
/usr/bin/nautilus
要按名称找到它们,您可以按照如下方式操作,假设我们想通过单击名为“文件”的图标来知道将执行哪个程序:
grep -lRi name=files /usr/share/applications/
- -l:仅显示文件名
- -R:重新检查
- -i:区分大小写
它将输出:
/usr/share/applications/org.gnome.Nautilus.desktop
/usr/share/applications/nautilus-folder-handler.desktop
/usr/share/applications/nautilus.desktop
然后我可以查看这些文件以Exec=
查看真正运行的是哪个程序。
类似这样的操作会更加方便:
grep -lRi name=files /usr/share/applications/ | xargs grep exec= -i