Ao navegar na Internet por artigos do Ubuntu, deparei-me com este comando:
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
O autor disse que este é um comando de linha única que excluirá todas as versões anteriores do Linux, deixando apenas a atual !
Na verdade, estou procurando por um comando desse tipo, mas não tenho tanta certeza de como isso é seguro. Eu gostaria de saber:
- Se é seguro executar este comando?
- Como esse comando funciona? ou seja, explicação de pequenas partes de um comando tão grande
- Se esse comando servir a algum propósito diferente, qual seria o comando correto para alcançar o que o autor afirma que ele deve fazer?
Fico muito confuso e frustrado quando tento deduzir tudo sozinho. Como isso funciona de comando para que ele contém numerosos /
, |
, \
, *
, e ^
personagens que são difíceis de Google para.
Estou procurando uma tradução e explicação passo a passo para este comando que não consegui encontrar na Internet!
apt-get autoremove
não sugere remoções de kernels antigos para mim. Se eu não excluí-los, eles simplesmente se acumularão até que meu /boot
espaço acabe e as atualizações falhem. Você tem uma referência sobre isso que deve fazer isso?
s/^[^ ]* [^ ]* \([^ ]*\).*/\1/
não simplesmente s/^[^ ]* \([^ ]*\).*/\1/
. O script não é muito robusto ou elegante. Por exemplo, por que verificar o kernel atual antes de extrair o nome do pacote da saída? Como alternativa, sudo apt-get autoremove --purge
elimina a maioria dos kernels antigos em uma versão mais recente do Ubuntu, como o Xubuntu 15.10.