如何在 ubuntu 中删除文件?

如何在 ubuntu 中删除文件?

我已经检查了一些主题,但无法删除以下文件/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

Eclips 图标屏幕截图

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 rmrm

  • 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>

相关内容