是否有任何命令可以仅打印所选软件包的名称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'