桌面安装和将桌面文件复制到应用程序目录之间的区别

桌面安装和将桌面文件复制到应用程序目录之间的区别

当我们想在菜单中添加快捷方式时。我们可以通过创建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命令来更新数据库

相关内容