Oli*_*Oli 153
它可能就在里面,/usr/share/applications/
但是如果您想找到.desktop
系统上的每个文件,请运行以下命令:
find / -name '*.desktop'
Run Code Online (Sandbox Code Playgroud)
或者
sudo updatedb
locate *.desktop
Run Code Online (Sandbox Code Playgroud)
要查找路径或名称中带有“skrooge”的文件,请在命令中添加一个grep:
locate *.desktop | grep -iR "skrooge"
Run Code Online (Sandbox Code Playgroud)
fra*_*gos 48
系统将 .desktop 文件存储在/usr/share/applications/
. 不幸的是,如果您在 nautilus 中打开该文件夹,则 .desktop 文件将显示为文件中指定的图标以及文件中标出的文件名。您也不能通过单击这些文件并选择编辑来编辑这些文件。
要编辑这些文件,您需要在终端窗口中打开该文件夹。执行ls
命令将显示所有 .desktop 文件及其实际名称。找到要更改的 .desktop 后,运行gksudo gedit {file-name}.desktop
.
通常的做法是将您创建或编辑的任何 .desktop 文件保存在您的主文件夹中~/.local/share/applications
。
Sop*_*rez 24
补充其他答案的一些额外细节:
通常,.desktop
包的文件将位于/usr/share/applications
.
如果你愿意,你可以复制一个~/.local/share/applications
并在那里编辑它而不需要 sudo。在项目~/.local/share/applications
将覆盖匹配项/usr/share/applications
和/usr/local/share/applications
,但只对用户可见。
或者,您可以将编辑后的副本放置/usr/local/share/applications
在它会覆盖任何输入的位置,/usr/share/applications
同时也对整个系统可见。
请注意,您不应直接编辑.desktop
文件/usr/share/applications
;当包管理器更新应用程序时,您所做的任何更改都将自动覆盖。
从这里提取
Ond*_*Mih 19
您可以在环境变量中找到所有包含桌面文件的目录XDG_DATA_DIRS
。这些*.desktop
文件可以位于applications
该变量中每个目录的目录中。例如:
> echo $XDG_DATA_DIRS
/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop
Run Code Online (Sandbox Code Playgroud)
您可以使用此 bash 脚本列出系统使用的所有桌面文件(例如构建面板或应用程序菜单):
for p in ${XDG_DATA_DIRS//:/ }; do
find $p/applications -name '*.desktop'
done
Run Code Online (Sandbox Code Playgroud)
看来桌面文件也可以放在另一个目录中,该目录不在XDG_DATA_DIRS
变量中:
~/.local/share/applications
因此,查找*.desktop
系统中所有文件的完整脚本是:
DATA_DIRS="$XDG_DATA_DIRS:$HOME/.local/share"
for p in ${DATA_DIRS//:/ }; do
find $p/applications -name '*.desktop'
done
Run Code Online (Sandbox Code Playgroud)
我没有找到任何相关文档,但这里有一些有关此环境变量的信息: https: //unix.stackexchange.com/a/531664
我知道我迟到了,但我有一个比答案更快的解决方案:
find / -iname "*desktop" -type f -not -path "/media*" -exec grep -il skrooge '{}' ';' 2> /dev/null
Run Code Online (Sandbox Code Playgroud)
它更快,因为它不搜索数据安装的文件系统,而且桌面文件很可能位于系统分区中。
此外,更有可能从已接受的答案中找到命令会遗漏的内容。这是因为桌面文件不必包含应用程序名称。该命令实际上搜索每个桌面文件中的文本。