据我所知,Unity启动器中的所有快捷方式都有相应的*.desktop文件。我有一个快捷方式(用于skrooge),但没有图标。我该如何找到与此快捷方式对应的*.desktop文件,以便我可以为其添加一个图标呢?
/usr/share/applications/
,但如果你想找到系统上的每个.desktop
文件,请运行以下命令:find / -name '*.desktop'
或者
sudo updatedb
locate *.desktop
locate *.desktop | grep -iR "skrooge"
~/.local/share/applications
中的 *.desktop 文件会被重新加载。因此,请注销并重新登录。请注意,这些文件是特定于该用户的。 - akshay2000/usr/share/applications
中的桌面文件会覆盖~/.local/share/applications
中的条目吗?我正在尝试配置Firefox使用firejail
,但每当浏览器更新时,如果我在/usr/share/applications/
的桌面文件中进行编辑,我的修改都会被删除。 - Daniel.desktop
文件存储在/var/lib/snapd/desktop/applications/
目录中。 - Flimm.desktop
文件存储在/var/lib/snapd/desktop/applications/
目录下。 - FlimmXDG_DATA_DIRS
环境变量中找到所有包含桌面文件的目录。这些*.desktop
文件可以位于该变量中每个目录下的applications
目录中。例如:> echo $XDG_DATA_DIRS
/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop
for p in ${XDG_DATA_DIRS//:/ }; do
find $p/applications -name '*.desktop'
done
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
~/.local/share/applications
和 ~/var/lib/snapd/desktop/applications
对吧? - lrkwz/var/lib/snapd/desktop/applications
- wjandreaXDG_DATA_DIRS
环境变量中找到了 /home/USERNAME/.local/share/applications
和 /var/lib/snapd/desktop/applications
。 - Flimm/var/lib/snapd/desktop/applications/
和/snap/
下找到。~/.local/share/applications
和$XDG_DATA_DIRS
,它们的查找顺序是怎样的? - wjandreafind / -iname "*desktop" -type f -not -path "/media*" -exec grep -il skrooge '{}' ';' 2> /dev/null
它更快,因为它不搜索挂载的数据文件系统,而且很可能桌面文件位于系统分区。
此外,它更有可能找到被接受答案中的命令所错过的内容。这是因为桌面文件不必保存应用程序名称。该命令实际上会搜索每个桌面文件中的文本。
find
和grep
命令,该命令应该可以独立于操作系统工作。但实际上,它导致命令崩溃并且没有输出任何内容。 - Rahat Zaman/usr/share/applications
(大多数应用程序,需要管理员权限)~/.local/share/applications
(个人应用程序)#!/bin/sh
# try to find the effective desktop file
# (there seems to be no documented standard for this)
use_if_desktop_file () {
if [ -r "$1" ] &&
[ "$(xdg-mime query filetype "$1")" = application/x-desktop ]; then
echo "$1"
exit
fi
}
for d in ~/.local/share/applications /usr/local/share/applications \
/usr/share/applications; do
use_if_desktop_file "$d/$1"
use_if_desktop_file "$d/$1.desktop"
done
# no file found
exit 1
locate -i "*skrooge*.desktop"
。虽然Unity主要会在三个地方查找桌面文件。~/.local/share/applications
、/usr/local/share/applications
和/usr/share/applications
。如果同一个命令在多个位置都有桌面文件,它将使用我列出的三个位置中最左边的那个。 - geirha/usr/share/applications/kde4/skrooge.desktop
。谢谢。 :) - KOVIKOsnap
软件包安装的桌面文件似乎会进入/snap/
和/var/lib/snapd/desktop/applications/
目录。 - Gabriel Stapleslocate *.desktop
命令没有找到任何结果。可以使用find / -name '*.desktop' 2> /dev/null
命令来抑制“权限被拒绝”的提示信息。 - Mark Jeronimus~/.local/share/applications
是您放置桌面文件的位置,这样在活动窗口中可以找到它并将其添加到收藏夹(固定在甲板上)。 - WesternGun