Trong khi duyệt internet các bài viết về Ubuntu, tôi đã bắt gặp lệnh này:
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
Tác giả nói rằng đây là một dòng lệnh sẽ xóa tất cả các phiên bản Linux trước đó, chỉ còn lại phiên bản hiện tại !
Tôi thực sự đang tìm kiếm một lệnh như vậy, nhưng tôi không chắc chắn về mức độ an toàn của nó. Tôi muốn biết:
- Liệu nó có an toàn để thực hiện lệnh này?
- Lệnh này hoạt động như thế nào? tức là giải thích các phần nhỏ của một lệnh lớn như vậy
- Nếu lệnh này phục vụ một số mục đích khác nhau, thì đâu sẽ là lệnh chính xác để đạt được những gì tác giả tuyên bố nó phải làm gì?
Tôi trở nên rất bối rối và thất vọng khi tôi cố gắng tự mình suy luận ra. Làm thế nào để công việc lệnh này bởi nó chứa đựng rất nhiều /
, |
, \
, *
, và^
nhân vật mà rất khó để Google cho.
Tôi đang tìm kiếm một bản dịch từng bước và giải thích cho lệnh này mà tôi không thể tìm thấy trên internet!
apt-get autoremove
không đề xuất bất kỳ loại bỏ hạt cũ nào cho tôi. Nếu tôi không xóa chúng, chúng sẽ chồng chất cho đến khi tôi /boot
hết dung lượng và cập nhật thất bại. Bạn có một tài liệu tham khảo cho nó về nó nên làm điều này?
s/^[^ ]* [^ ]* \([^ ]*\).*/\1/
thay vì đơn giản s/^[^ ]* \([^ ]*\).*/\1/
. Kịch bản không mạnh mẽ hay thanh lịch. Ví dụ tại sao kiểm tra kernel hiện tại trước khi trích xuất tên gói từ đầu ra? Đối với một giải pháp thay thế, sudo apt-get autoremove --purge
thanh lọc hầu hết các hạt nhân cũ trong một số bản phát hành mới nhất của Ubuntu như Xubfox 15.10.