在运行 Ubuntu 20.04 LTS 的服务器上,我尝试使用以下命令列出已安装的内核:
dpkg-query -W -f '${Package}\n' 'linux-image-[0-9]*'
根据手册页应该列出与模式匹配的已安装包。然而,该命令的输出包括已被删除的内核版本。如何将输出限制为仍安装的内核?
在运行 Ubuntu 20.04 LTS 的服务器上,我尝试使用以下命令列出已安装的内核:
dpkg-query -W -f '${Package}\n' 'linux-image-[0-9]*'
根据手册页应该列出与模式匹配的已安装包。然而,该命令的输出包括已被删除的内核版本。如何将输出限制为仍安装的内核?
20.04 上的手册页显示“所有与模式匹配的包”,其中包括已卸载的包。它没有声称将输出限制为已安装的软件包。
将包状态添加到您的输出中
dpkg-query -W -f '${db:Status-Status} ${Package}\n' 'linux-image-[0-9]*'
使用包状态字段过滤输出。除“未安装”外的所有值都表示该软件包至少已部分安装。
dpkg-query -W -f '${db:Status-Status} ${Package}\n' 'linux-image-[0-9]*' | awk '$1 != "not-installed" {print}'
将输出限制为包名
dpkg-query -W -f '${db:Status-Status} ${Package}\n' 'linux-image-[0-9]*' | awk '$1 != "not-installed" {print $2}'