Удаление старых ядер ( linux-kernel ) одной командой

Тем, кому нужно срочно, вот, эта команда:
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

Разбор команды

dpkg -l 'linux-*' выбрать все установленные пакеты, которые начинаются с ‘linux-‘.
sed '/^ii/!d; удалить из списка все строки, которые начинаются с чего-то отличного от ii.
uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/" получить текущую версию ядра.
/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d удалить все строки за исключением той, в которой содержится текущая версия ядра.
s/^[^ ]* [^ ]* \([^ ]*\).*/\1/ в каждой строке оставить только название пакета
/[0-9]/!d удалить строки, которые не содержат цифры.
xargs sudo apt-get -y purge полностью удалить эти пакеты.

Предупреждения

  1. Если до выполнения этой команды вы обновили ядро или систему — перезагрузите компьютер!
  2. Лучше в начале выполнить команду без xargs sudo apt-get -y purge и посмотреть что будет удалено!

Источники:
Can’t upgrade due to low disk space on /boot
Ubuntu Cleanup: How to Remove All Unused Linux Kernel Headers, Images and Modules

Добавить комментарий

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Материалы распространяются под лицензией Creative Commons: Атрибуция — Некоммерческое использование — С сохранением условий (Attribution-NonCommercial-ShareAlike) 3.0 Unported.
Рейтинг@Mail.ru