Bagaimana saya bisa mendapatkan daftar dengan paket yang dipilih oleh apt-get autoremove?

13

Apakah ada perintah yang hanya mencetak nama paket yang apt-get autoremovedipilih? Saya membuat skrip yang memperbarui kernel, menghapus kernel lama dan paket yang tidak perlu ( apt-get autoremove), tetapi saya ingin mencetak pada layar daftar paket yang akan dihapus oleh apt-get autoremove, bagaimana saya bisa melakukan ini?

Afonso Sousa
sumber
Anda seharusnya hanya bisa menjalankannya sudo apt-get autoremove -ydan harus autoremove apa saja yang perlu dihapus ...
Coba baca di sini, [Ini mungkin bisa membantu.] [1] [1]: serverfault.com/questions/433250/…
Doug
Untuk mendapatkan daftar paket tanpa menghapusnya sebenarnya dapat Anda lakukansudo apt-get --dry-run autoremove
heemayl
Saya hanya ingin mendapatkan nama paket, bukan seluruh output dari perintah ....
Afonso Sousa

Jawaban:

13

Karena sesuai komentar Anda, Anda hanya ingin mencantumkan paket yang akan dihapus:

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

grep perintah breakdown:

  • -P: Menafsirkan pola yang diberikan sebagai pola PCRE (Perl Compatible Regular Expression)
  • -o: Mencetak hanya string yang cocok alih-alih seluruh baris

Regex breakdown:

  • ^: cocok dengan awal baris
  • Remv: cocok dengan Remvstring
  • \K: mengecualikan substring yang sebelumnya cocok dari string yang cocok
  • [^ ]+: cocok dengan satu atau lebih karakter yang tidak
$ apt-get --dry-run autoremove | grep -Po 'Remv \K[^ ]+'
libapache2-mod-php5
php5-readline
php5-cli
libonig2
libqdbm14
php5-json
php5-common 
kos
sumber
1
@GeekLynxAfonso, Anda tidak perlu digunakan sudodengan --dry-runpilihan.
jarno
@jarno Masuk akal, fakta bahwa itu mungkin tidak diperlukan tidak terjadi pada saya. Terima kasih
kos
2

Sebenarnya Anda hanya perlu memfilter keluaran dari Anda

sudo apt-get autoremove --dry-run 

perintah.

Misalnya Anda bisa melakukannya dengan

sudo apt-get autoremove --dry-run  | head -n 5 | tail -n 1
lemon
sumber
Perintahmu juga bekerja !! Tapi aku lebih suka perintah kos ... Tapi terima kasih juga !! :)
Afonso Sousa