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
Xubuntu 15.10のようなUbuntuの最新リリースのほとんどの古いカーネルを削除します。