Wie kann ich eine Liste mit den von apt-get autoremove ausgewählten Paketen erstellen?

13

Gibt es einen Befehl, der nur den Namen der ausgewählten Pakete druckt apt-get autoremove? Ich erstelle ein Skript, das den Kernel aktualisiert, den alten Kernel und die unnötigen Pakete entfernt ( apt-get autoremove), aber ich möchte die Liste der Pakete, die von entfernt werden sollen apt-get autoremove, auf dem Bildschirm drucken. Wie kann ich das tun?

Afonso Sousa
quelle
Sie sollten nur in der Lage sein, es zum Laufen zu bringen, sudo apt-get autoremove -yund es sollte alles, was entfernt werden muss, automatisch entfernen ...
Versuchen Sie hier zu lesen, [Dies kann hilfreich sein.] [1] [1]: serverfault.com/questions/433250/…
Doug
Um die Liste der Pakete zu erhalten, ohne sie tatsächlich zu entfernen, können Sie tunsudo apt-get --dry-run autoremove
heemayl
Ich möchte nur den Namen der Pakete erhalten, nicht die gesamte Ausgabe des Befehls ...
Afonso Sousa

Antworten:

13

Da Sie gemäß Ihrem Kommentar nur die Pakete auflisten möchten, die entfernt werden sollen:

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

grep Befehlsaufschlüsselung:

  • -P: Interpretiert das angegebene Muster als PCRE-Muster (Perl Compatible Regular Expression)
  • -o: Druckt nur die übereinstimmende Zeichenfolge anstelle der gesamten Zeile

Regex-Aufschlüsselung:

  • ^: Entspricht dem Zeilenanfang
  • Remv: Entspricht einer RemvZeichenfolge
  • \K: Schließt den zuvor übereinstimmenden Teilstring aus dem übereinstimmenden String aus
  • [^ ]+: Entspricht einem oder mehreren Zeichen nicht
$ apt-get --dry-run autoremove | grep -Po 'Remv \K[^ ]+'
libapache2-mod-php5
php5-readline
php5-cli
libonig2
libqdbm14
php5-json
php5-common 
kos
quelle
1
@GeekLynxAfonso müssen Sie nicht sudomit --dry-runOption verwenden.
Jarno
@jarno Sinnvoll, die Tatsache, dass es wahrscheinlich nicht benötigt wurde, kam mir nicht in den Sinn. Danke
kos
2

Eigentlich müssen Sie nur die Ausgabe Ihres filtern

sudo apt-get autoremove --dry-run 

Befehl.

Zum Beispiel können Sie es mit tun

sudo apt-get autoremove --dry-run  | head -n 5 | tail -n 1
Zitronenscheibe
quelle
Ihr Befehl funktioniert auch !! Aber ich bevorzuge den Befehl des Kos ... Aber danke auch !! :)
Afonso Sousa