Просматривая в Интернете статьи об Ubuntu, я наткнулся на эту команду:
sudo 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
Автор сказал, что это однострочная команда, которая удалит все предыдущие версии Linux, оставив только текущую !
Я на самом деле ищу такую команду, но я не уверен, насколько это безопасно. Я хотел бы знать:
- Безопасно ли выполнять эту команду?
- Как работает эта команда? то есть объяснение мелких частей такой большой команды
- Если эта команда служит какой-то другой цели, то какая будет правильной командой для достижения того, что, как утверждает автор, она выполняет?
Я очень смущаюсь и расстраиваюсь, когда пытаюсь сделать вывод сам. Как эта команда работать на нем многочисленные /
, |
, \
, *
, и ^
символы , которые трудно Google для.
Я ищу пошаговый перевод и объяснение этой команды, которое мне не удалось найти в интернете!
apt-get autoremove
не предлагает для меня удаления старых версий ядра. Если я не удаляю их, они просто будут накапливаться, пока у меня не /boot
будет свободного места и обновления не будут выполнены. У вас есть ссылка на это о том, что он должен сделать это?
s/^[^ ]* [^ ]* \([^ ]*\).*/\1/
вместо простой s/^[^ ]* \([^ ]*\).*/\1/
. Сценарий не очень надежный или элегантный. Например, зачем проверять текущее ядро перед извлечением имени пакета из вывода? Что касается альтернативы, sudo apt-get autoremove --purge
очищает большинство старых ядер в некоторых последних версиях Ubuntu, таких как Xubuntu 15.10.