哪个shell命令可以find提供某个完整虚拟包的所有包?

正如标题所示,我想获得提供特定虚拟的所有包的列表。 一个这样做的方法是编写一个shell脚本来parsing所有的输出

apt-cache search -f .* 

并输出在提供部分中具有虚拟包的所有包。 这种方法的问题是执行需要很长的时间。 我想应该有一个简单的命令,以有效的方式做到这一点,但我无法find。

如果你已经安装了aptitude,它提供了很多可用于搜索的模式。

特别是对于查找提供给定虚拟包名称的包的情况,可以使用以下命令:

 $ aptitude search '?provides(pattern)' 

模式可以设置为您正在查找的虚拟包名称。

例如:

 $ aptitude search -F %p '?provides(mail-reader)' balsa bsd-mailx claws-mail cone emacs emacs23 emacs23-lucid emacs23-nox evolution gnus im jed kmail kmail-mobile mailutils mailutils-mh mew mew-beta mew-beta-bin mew-bin mutt nmh opera opera-next seamonkey-mailnews sylpheed thunderbird tkrat vm wl wl-beta xemacs21-mule xemacs21-mule-canna-wnn xemacs21-nomule xjed xul-ext-lightning 

看看dpkg-query是否适合你的需要。