Как навсегда удалить ВСЕ старые ядра, используя оболочку с вопросом подтверждения?

Чтобы освободить место на диске, вы можете проверить, какое ядро ​​вы используете:

uname -r

И затем удалить ВСЕ версии ядра, кроме текущей:

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge

You можете запустить эту команду как задание cron, если вы хотите, чтобы это делалось автоматически. Однако это не разумно, так как вы ВСЕГДА должны иметь старое ядро ​​или два, к которым можно прибегнуть (на случай, если новое не будет работать с вашей системой). По крайней мере, если вы только что обновили ядро, перезагрузите компьютер перед удалением старых версий.

Источник: Как удалить старые версии ядра для очистки меню загрузки?

Но эта команда начнет удаление сразу, без спрашивая !

Как я могу изменить эту строку, чтобы вас просили продолжить, прежде чем она будет удалена?

4
задан 13 April 2017 в 15:24

1 ответ

Используйте следующую команду вместо того, что вы использовали ранее:

sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d')

Вот мой вывод, когда я выполняю вышеуказанную команду:

saurav@saurav-P4I45Gx-PE:~$ sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d')
[sudo] password for saurav: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  linux-headers-3.11.0-031100* linux-headers-3.11.0-031100-generic* linux-image-3.11.0-031100-generic*
0 upgraded, 0 newly installed, 3 to remove and 39 not upgraded.
After this operation, 212 MB disk space will be freed.
Do you want to continue [Y/n]? n
Abort.

Вот и все!

0
ответ дан 13 April 2017 в 15:24

Другие вопросы по тегам:

Похожие вопросы: