我如何才能找出应用程序的名称并在终端中删除它们?

我如何才能找出应用程序的名称并在终端中删除它们?

我曾尝试卸载终端中的许多应用程序,因为有些应用程序未显示在 Ubuntu 软件应用程序中。每次我这样做时,我都必须搜索互联网,因为很难知道如何在终端中输入应用程序的名称。例如,FreeOffice 在终端中的名称是sofmaker-freeoffice-2023,而其他应用程序的名称则不同。

有没有什么办法可以知道使用终端卸载应用程序的名称,而无需搜索互联网?

答案1

这回答了具体的问题“有没有办法知道使用终端卸载应用程序的名称,而无需搜索互联网?”和“我如何才能找到应用程序的名称并在终端中删除它们?”。如果您想使用该信息也使用终端将其删除,那么知道启动程序的可执行文件的名称可能还不够。

对于菜单系统中的应用程序,搜索系统的.desktop启动器是一种好方法。.desktop启动器是带有扩展名的小文本文件.desktop,用于告诉操作系统有关已安装应用程序的各种信息。

您可以根据菜单中显示的内容找到此类启动器。例如,LO Writer 的启动器将包含以 开头的一行字符串Name=。当您在文本编辑器中打开该启动器时,您将看到 后指定的可执行文件Exec=

您可以使用任何工具根据内容搜索文件,但是,我有一个小脚本,我将其命名为whichdesktop,用于搜索.desktop文件:

内容whichdesktop

#!/bin/bash
IFS=$" :"
DIR="$HOME/.local/share/applications"
for d in $XDG_DATA_DIRS; do
    d=$(echo "$d" | sed -e 's/\/$//')
    [ -d $d/applications ] && DIR="$DIR $d/applications"
done
find -L $DIR -name '*.desktop' -exec grep -H "$1" {} \;

它列出可以安装启动器的目录.desktop,然后调用find以仅搜索这些目录。

例如,如果我想知道 LibreOffice Writer 的可执行文件叫什么,我可以运行:

$ whichdesktop "LibreOffice Writer"
/usr/share/applications/libreoffice-writer.desktop:Name=LibreOffice Writer
$ cat /usr/share/applications/libreoffice-writer.desktop | grep Exec=
Exec=libreoffice --writer %U
Exec=libreoffice --writer

这表明该可执行文件被调用libreoffice

答案2

自动完成功能可能会提供部分帮助,这对于 apt 来说非常有用:

sudo apt remove sof->->

两个->箭头表示 Tab 键,将显示所有要删除的候选文件,仅考虑已安装的软件。

但你还是得知道名字的开头。至少它会检测出拼写错误。

apropos 命令可能很有用,可以找到您知道部分名称或可以猜出描述重要部分的程序:

apropos office 

应该会为您提供名称包含字符串“office”或描述以某种方式匹配的程序列表。从那里,您通常可以缩小选择范围。

相关内容