Przeglądając artykuły Ubuntu w Internecie, natrafiłem na to polecenie:
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
Autor powiedział, że jest to jedno wierszowe polecenie, które usunie wszystkie poprzednie wersje Linuksa, pozostawiając tylko bieżącą !
Tak naprawdę szukam takiego polecenia, ale nie jestem pewien, czy jest to bezpieczne. Chciałbym wiedzieć:
- Czy wykonanie tego polecenia jest bezpieczne?
- Jak działa to polecenie? tzn. wyjaśnienie małych części tak dużego polecenia
- Jeśli to polecenie służy innemu celowi, to jakie byłoby prawidłowe polecenie, aby osiągnąć to, co autor twierdzi, że zrobił?
Staję się bardzo zdezorientowany i sfrustrowany, gdy staram się wywnioskować wszystko sam. Jak to działa polecenia dla zawiera liczne /
, |
, \
, *
, i ^
znaki, które są trudne do Google.
Szukam tłumaczenia i wyjaśnienia krok po kroku tego polecenia, którego nie udało mi się znaleźć w Internecie!
apt-get autoremove
nie sugeruje mi usuwania starszych jąder. Jeśli ich nie usunę, będą się gromadzić, dopóki /boot
nie zabraknie mi miejsca i aktualizacje się nie powiodą. Czy masz do tego odniesienie, że powinien to zrobić?
s/^[^ ]* [^ ]* \([^ ]*\).*/\1/
po prostu s/^[^ ]* \([^ ]*\).*/\1/
. Skrypt nie jest zbyt solidny ani elegancki. Na przykład po co sprawdzać bieżące jądro przed wypakowaniem nazwy pakietu z wyjścia? Alternatywnie, sudo apt-get autoremove --purge
czyści większość starych jąder w najnowszej wersji Ubuntu, takiej jak Xubuntu 15.10.