apt-get autoremoveで選択されたパッケージのリストを取得するにはどうすればよいですか?


13

apt-get autoremove選択するパッケージの名前のみを出力するコマンドはありますか?カーネルを更新し、古いカーネルと不要なパッケージを削除するスクリプトを作成しています(apt-get autoremove)が、削除するパッケージのリストを画面に印刷したいのですがapt-get autoremove、どうすればよいですか?


あなたはそれを実行するために得ることができる必要がありますsudo apt-get autoremove -y...それは何も削除されるために必要な自動削除すべきである

ここを読んでみてください[これは助けになるかもしれません。] [1] [1]:serverfault.com/questions/433250/…-
ダグ

パッケージを実際に削除せずにリストを取得するには、次のようにしますsudo apt-get --dry-run autoremove
。heemayl

私だけ....パッケージの名前ではなく、コマンドの出力全体を取得したい
アフォンソスーザ

回答:


13

あなたのコメントによると、削除されるパッケージのみをリストしたいので:

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

grep コマンドの内訳:

  • -P:指定されたパターンをPCRE(Perl Compatible Regular Expression)パターンとして解釈します
  • -o:行全体ではなく、一致した文字列のみを出力します

正規表現の内訳:

  • ^:行の先頭に一致
  • RemvRemv文字列に一致
  • \K:一致した文字列から以前に一致した部分文字列を除外します
  • [^ ]+:1つ以上の文字と一致しません
$ apt-get --dry-run autoremove | grep -Po 'Remv \K[^ ]+'
libapache2-mod-php5
php5-readline
php5-cli
libonig2
libqdbm14
php5-json
php5-common 

1
@GeekLynxAfonso、オプションを使用sudoする必要はありません--dry-run
ジャーノ

@jarno理にかなっています。おそらく必要ではないという事実は私には起こりませんでした。ありがとう
コス

2

実際には、あなたの出力をフィルタリングするだけです

sudo apt-get autoremove --dry-run 

コマンド。

例えば、あなたはそれをすることができます

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

あなたのコマンドも機能します!! しかし、私はコスのコマンドを好む...しかし、同じように感謝!:)
アフォンソスーザ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.