如何获取 apt-get autoremove 选择的软件包列表?

如何获取 apt-get autoremove 选择的软件包列表?

是否有任何命令可以仅打印所选软件包的名称apt-get autoremove?我正在创建一个脚本来更新内核,删除旧内核和不必要的软件包(apt-get autoremove),但我想在屏幕上打印将被删除的软件包列表apt-get autoremove,我该怎么做?

答案1

自从根据您的评论您只想列出将要删除的软件包:

apt-get --dry-run autoremove | grep -Po '^Remv \K[^ ]+'

grep命令分解:

  • -P:将给定的模式解释为 PCRE(Perl 兼容正则表达式)模式
  • -o:仅打印匹配的字符串而不是整行

正则表达式细分:

  • ^: 匹配行首
  • Remv:匹配一个Remv字符串
  • \K:从匹配的字符串中排除先前匹配的子字符串
  • [^ ]+: 匹配一个或多个字符
$ apt-get --dry-run autoremove | grep -Po 'Remv \K[^ ]+'
libapache2-mod-php5
php5-readline
php5-cli
libonig2
libqdbm14
php5-json
php5-common 

答案2

实际上你只需要过滤你的

sudo apt-get autoremove --dry-run 

命令。

例如你可以这样做

sudo apt-get autoremove --dry-run  | head -n 5 | tail -n 1

答案3

apt-get在现代 apt 版本中无需使用。你可以使用

apt autoremove --dry-run

答案4

使用 apt-patterns (参见man 7 apt-patterns) 可以简单地执行以下操作:

apt list '?garbage'

相关内容