当我们想在菜单中添加快捷方式时。我们可以通过创建filename.desktop
并将该文件复制到来实现/usr/share/applications
。还有另一种方法,即执行desktop-file-install filename.desktop
。这两者之间有什么区别?
直到现在,我仍然使用copy
方法,因为如果我想删除它,我只需删除它。而且desktop-file-install
似乎没有desktop-file-uninstall
。
答案1
去引用man desktop-file-install
:
desktop-file-install
将始终尝试验证生成的桌面文件。验证失败可能会导致桌面文件安装失败。
相反,cp
会复制任何东西。
所以没有,desktop-file-uninstall
因为没有必要验证您要删除的文件。
答案2
我知道这是一个老问题,但答案要么不完整,要么随着时间的推移而改变。
desktop-file-install
导致数据库更新,确切地说,它通过 更新缓存rebuild_cache()
。
更多详细信息可以在官方存储库“desktop-file-utils”中的源代码中找到:
https://gitlab.freedesktop.org/xdg/desktop-file-utils/-/blob/master/src/install.c#L291
仅仅复制cp
不会导致 mime 库更新,这很重要 - 它不会更新其缓存。
这对于文件更新很重要- 您可能会注意到,如果您在路径文件本身上更改 *.desktop 的文本/usr/share/xfce4/helpers/
,则更改不会立即被接受。
安装调用将执行以下操作:
- 首次验证 *.desktop 文件
desktop-file-validate
- 此外,如果文件有效,它将通过调用
update-desktop-database
命令来更新数据库