如何显示已安装软件包的数量


Answers:



6
dpkg -l | grep -c '^ii'

有一些微妙的变体,例如dpkg -l | grep -c '^?i'是否要包含已安装但已要求将其删除的软件包。另一种方法是

aptitude search '~i' |wc -l

您甚至可以直接戳入dpkg数据库:

sh -c 'set /var/lib/dpkg/info/*; echo $#'

这包括尚未安装但剩余配置文件的软件包。您可以使用列出这些dpkg -l | grep '^rc'


1

dpkg -l很好,但实际上我发现自己使用apt-show-versions了很多东西(默认情况下未在Debian上安装;安装相同名称的软件包),而特别是在我想进一步处理输出时(dpkg尝试使用换行太聪明)。




0

如果您想精确计算软件包的数量,则不应计算所输出的标题行dpkg-query -l,因此需要一种模式以匹配以开头的行ii。下面的单行代码为您提供了以开头的行数,ii因此也提供了已安装软件包的数目:

dpkg-query -l | grep "^ii" | wc -l 

这给出了与输出相同的输出

 dpkg --get-selections | grep "[[:space:]]install" | wc -l

第二个命令中的grep模式将忽略输出中包含字符串“ deinstall”的行dpkg --get-selections


-1

对于实例,您可以执行以下操作:

dpkg-query -l | nl | tail -1 | awk '{print $1}'

好的,确实nl | tail -1 | awk '{print $1}'可以报​​告输入中的行数(除非,如果没有输入,它将不报告而不是报告0)-但是当其他答案已经在使用时,为什么您会建议这样做wc -l呢?
G-Man说'Resstate Monica''July

这很有趣,因为我没有阅读以前的答案!@ G-Man ...但这仍然是一个很好的答案。
卡里姆·马纳维尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.