使用 apt 仅搜索已安装的软件包

使用 apt 仅搜索已安装的软件包

使用aptitude我可以进行如下搜索:

aptitude search '~i bash'

这似乎是一个特定于 aptitude 的正则表达式。是否可以使用aptapt-cache不使用附加命令来执行相同的操作?

apt search '~i bash'

不管用。

答案1

你可以试试:

apt list --installed bash

这将尝试列出已安装的package名称bash

但是,如果您想搜索特定文件,请使用apt-file

以下命令将列出bash名称中包含字符串的所有包:

apt list -a --installed bash

正如@Exostor所建议的那样,apt list -a --installed bash并不总是列出以特定字符串开头的包,而是使用:

apt list -a --installed bash*

如果您正在寻找 globbing,请在下面的 @Exostor 评论上投票。

答案2

dpkg-query --list | grep '^.i\s*PKG'

或者:

dpkg-query --list PKG\* | grep '^.i'

其中PKG是所需的包名称/reg-ex。

答案3

如果其他人想知道如何做到这一点,我使用以下方法。

apt list --installed | grep [XYZ]

此方法还显示已安装的包含您要搜索的字符串的不同软件包。例如,如果我正在搜索 vlc,则会显示许多其他名称中也包含“vlc”的软件包。这是输入和输出:

apt list --installed | grep vlc

WARNING: apt.divert does not have a stable CLI interface. Use with caution in scripts.

browser-plugin-vlc/stable,now 2.0.6-4 amd64 [installed]
libvlc-bin/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
libvlc5/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
libvlccore8/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
phonon4qt5-backend-vlc/stable,now 0.9.0-2 amd64 [installed,automatic]
vlc/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
vlc-bin/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
vlc-data/stable,stable,stable,stable,now 2.2.7-1~deb9u1 all [installed]
vlc-l10n/stable,stable,stable,stable,now 2.2.7-1~deb9u1 all [installed]
vlc-plugin-base/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
vlc-plugin-notify/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
vlc-plugin-qt/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
vlc-plugin-samba/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
vlc-plugin-skins2/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
vlc-plugin-video-output/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
vlc-plugin-video-splitter/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]
vlc-plugin-visualization/stable,stable,now 2.2.7-1~deb9u1 amd64 [installed]

如果发现您没有安装该软件包,该命令将直接退出。

相关内容