Удаление старых ядер ( 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

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *