我已经检查了一些主题,但无法删除以下文件/usr/share/applications
我下载了 Eclipse,但不知何故,我还安装了两个图标并以不同的名称命名。
我想要删除一个属于 Eclipse 的图标(不是程序):我的电脑上有两个不同的 Eclipse 图标,/usr/share/applications
分别名为“Eclipse Mars”和“Eclipse Mars Java”。我想删除其中一个,我尝试在终端中使用以下命令进行删除:
sudo dpkg Eclipse Mars Java
sudo rm -f /usr/share/applications/Eclipse Mars Java
然而,以上方法均未奏效...
还有其他方法可以删除这些图标之一吗?
答案1
您之所以看到两个图标,是因为您有两个桌面文件:位于/usr/share/applications
和/或 中~/.local/share/applications
。桌面文件的文件名在文件管理器和启动器中并不相同。在文件管理器和启动器中,您可以看到桌面文件内定义的内容,请注意条目Name=
例子
[桌面条目] 编码=UTF-8 版本=1.0 类型=应用程序 名称=Eclipse C++ 注释=Eclipse 集成开发环境 图标=eclipse 执行=/opt/eclipse-cpp/eclipse/eclipse StartupNotify=true StartupWMClass=Eclipse-CPP
grep -lr 'Name=Eclipse C++' ~/.local/share/applications
/home/aboettger/.local/share/applications/opt_eclipse_cpp.desktop
因此找到正确的路径和文件名使用以下命令:
Eclipse Mars Java
grep -lr 'Name=Eclipse Mars Java' /usr/share/applications grep -lr 'Name=Eclipse Mars Java' ~/.local/share/applications
Eclipse Mars
grep -lr 'Name=Eclipse Mars [^J]' /usr/share/applications grep -lr 'Name=Eclipse Mars [^J]' ~/.local/share/applications
删除正确的文件通过(笔记,这些命令与上面的命令相同,但附加命令sudo rm
或rm
)
Eclipse Mars Java
grep -lr 'Name=Eclipse Mars Java' /usr/share/applications | xargs sudo rm grep -lr 'Name=Eclipse Mars Java' ~/.local/share/applications | xargs rm
Eclipse Mars
grep -lr 'Name=Eclipse Mars [^J]' /usr/share/applications | xargs sudo rm grep -lr 'Name=Eclipse Mars [^J]' ~/.local/share/applications | xargs rm
答案2
取决于包的名称以及您如何安装它。
从你的问题来看,我猜你用的是dpkg
dpkg(和 apt-get)的选项是删除或清除。
删除会保存系统配置文件,清除则不会
-r, --remove package...|-a|--pending 删除已安装的软件包。这将删除除 conffiles 之外的所有内容,这样可以避免以后重新安装时必须重新配置软件包(conffiles 是 DEBIAN/conffiles 控制文件中列出的配置文件)。如果给出 -a 或 --pending 而不是软件包名称,则所有已解压但在文件 /var/lib/dpkg/status 中标记为要删除的软件包都将被删除。
Removing of a package consists of the following steps: 1. Run prerm script 2. Remove the installed files 3. Run postrm script -P, --purge package...|-a|--pending Purge an installed or already removed package. This removes everything, including conffiles. If -a or --pending is given instead of a package name, then all packages unpacked or removed, but marked to be purged in file /var/lib/dpkg/status, are purged. Note: some configuration files might be unknown to dpkg because they are created and handled separately through the configuration scripts. In that case, dpkg won't remove them by itself, but the package's postrm script (which is called by dpkg), has to take care of their removal during purge. Of course, this only applies to files in system directories, not configuration files written to individual users' home directories. Purging of a package consists of the following steps: 1. Remove the package, if not already removed. See --remove for detailed information about how this is done. 2. Run postrm script.
看http://manpages.ubuntu.com/manpages/vivid/man1/dpkg.1.html
这两个选项都不会从您的 HOME 目录中删除文件,例如 .desktop 文件。您必须手动查找并删除这些文件。
文件中含有空格时需要使用引号,或者转义空格,或者使用制表符补全
rm "file with spaces"
rm file\ with\ spaces
rm file<tab><tab>