Làm thế nào tôi có thể loại bỏ các mục menu bắt đầu mồ côi?


14

Vì một số lý do, tôi có một loạt các mục menu bắt đầu còn sót lại từ các ứng dụng (ví dụ: Gnome Do, Synapse, Leafpad.) Và tự hỏi liệu có cách nào để loại bỏ tất cả các mục mồ côi cho các ứng dụng không còn được cài đặt không?

Câu trả lời:


32

Bạn có thể sử dụng lệnh sau để liệt kê các biểu tượng ứng dụng liên kết đến các chương trình không tồn tại:

for i in {/usr,~/.local}/share/applications/*.desktop; do which $(grep -Poh '(?<=Exec=).*?( |$)' $i) > /dev/null || echo $i; done

Tôi nghi ngờ bạn sẽ thấy rằng hầu hết các biểu tượng của bạn là các biểu tượng tùy chỉnh trong thư mục nhà của bạn, vì chúng không được trình quản lý gói tự động dọn sạch. Nếu đây là trường hợp và bạn muốn dọn rác Cài đặt thùng rác tất cả chúng cùng một lúc, bạn có thể sử dụng sửa đổi lệnh trước đó:

for i in ~/.local/share/applications/*.desktop; do which $(grep -Poh '(?<=Exec=).*?( |$)' $i) > /dev/null || trash $i; done

Hoặc, tất nhiên, duyệt đến ~/.local/share/applications/trong Nautilus và dọn rác chúng qua giao diện đồ họa.


Điều đó đã lừa Có cách nào tôi có thể biến nó thành một phím tắt mà tôi có thể chạy khi điều đó xảy ra lần nữa không?
Alan

3

Nếu bằng menu bắt đầu, bạn có nghĩa là menu 'Ứng dụng', bạn có thể chỉnh sửa nó bằng cách đi tới: Hệ thống -> Tùy chọn -> Menu chính.

Bạn có thể thêm, sắp xếp lại, chỉnh sửa và xóa các mục tùy ý.


Xin chào. Điều đó đúng, nhưng tôi phải đi qua từng người, xác nhận xem nó có thực sự mồ côi hay không, và sau đó xóa nó. Tôi đang tìm kiếm một cách có thể làm tất cả những điều này cho tôi, vì tôi có khoảng hơn 40 mục mà tôi muốn xóa.
Alan

Có lẽ là câu trả lời thân thiện nhất. +1
tir38

3

Khi một ứng dụng được gỡ cài đặt, nó sẽ xóa các mục menu mà nó đã cài đặt. Và nó hoạt động theo cách này trên máy của tôi.

Nếu nó hoạt động khác nhau, đó là một lỗi của một gói cụ thể hoặc một vấn đề trên hệ thống của bạn. Tôi không thể tin rằng bạn có hơn 40 mục mồ côi. Nó sẽ là triệu chứng của một vấn đề.


Điều đó thật kỳ lạ, tôi chưa bao giờ gặp vấn đề này cho đến khi nâng cấp lên Natty Narwhal. Tôi có thể hạ xuống còn 10.04LTS và đợi một lát cho đến ngày 11.04 không có lỗi hơn một chút.
Alan

Có những chương trình tích cực tự cài đặt nhưng không có trình cài đặt thực tế. Họ mồ côi nếu nhị phân được di chuyển.
Mũi nhọn

2

Chà, cái này thì khó nhưng ít nhất tôi muốn nói cho bạn biết vấn đề là gì.

Gnome lưu trữ các ứng dụng đã cài đặt trong / usr / share / application với các tệp đã kết thúc bằng .desktop (vì vậy chương trình vlc được khởi chạy bởi vlc.desktop)

Bên trong mỗi cái, có một phần "Danh mục" trong đó bạn có thể đặt trong phần nào của menu Ứng dụng mà chương trình bạn muốn. Vấn đề là: cách duy nhất tôi nghĩ nó có thể được thực hiện những gì bạn đang yêu cầu là sử dụng tập lệnh bash hỏi xem gói có liên quan đến .desktop đó đã được cài đặt hay chưa. nếu không, hãy xóa tệp .desktop đó. Khi bạn xóa tệp, nó sẽ nằm ngoài menu và khi ứng dụng của bạn nằm trong danh mục, tệp đó sẽ không hiển thị.

Đó là một chút ngoài phạm vi của tôi bởi vì mọi lệnh (dpkg, apt-get, v.v.) luôn trả về một lối thoát tốt khi họ nói rằng gói không được cài đặt, vì vậy chúng tôi phải đọc lối ra từ ứng dụng đó để tìm kiếm một Chuỗi (fi "chưa được cài đặt"), kiểm tra nó và nếu Chuỗi tồn tại, điều đó có nghĩa là ứng dụng chưa được cài đặt và .desktop có thể bị xóa.

Vì vậy, nếu bạn muốn, bạn chỉ cần nhập thư mục (/ usr / share / application) và nhấp vào các tệp tương ứng với các chương trình. Họ sẽ biến mất khỏi menu Ứng dụng. Để làm điều đó tự động, tôi đoán chúng ta cần một kịch bản bash tốt trên bản nhạc tôi đã nói.

Tôi hy vọng việc này sẽ có ích trong vài trường hợp.


Xin chào David, cảm ơn sự giúp đỡ của bạn! Mẹo đó về việc đi vào / usr / share / ứng dụng chắc chắn là tiết kiệm thời gian so với việc xóa từng liên kết bị hỏng trong trình chỉnh sửa menu.
Alan

0

Thay thế:

Theo câu trả lời @ ændrük, đây là một giải pháp tương tự hỗ trợ khoảng trắng trong đường dẫn và thư mục con , có thể được sử dụng trên một thư mục cụ thể hoặc toàn bộ đĩa để tìm .desktoptệp bị hỏng (phím tắt)

find {/usr,~/.local,/usr/local,}/share/applications/ -name '*.desktop' | while read -r line; do which $(grep -Poh '(?<=Exec=).*?( |$)' $line) > /dev/null || echo $line;  done

Cho toàn bộ đĩa

find / -name '*.desktop' | while read -r line; do which $(grep -Poh '(?<=Exec=).*?( |$)' $line) > /dev/null || echo $line;  done

Lưu ý: rằng bất kỳ phương pháp nào cũng có thể hiển thị kiểm tra dương tính giả hai lần tìm thấy tệp trước khi xóa chúng


0

Đây có thể là một câu hỏi đã được đăng cũ nhưng tôi nghĩ dù sao tôi cũng nên bấm nút vì tôi gặp vấn đề tương tự tuy nhiên không có gợi ý nào trong số này có tác dụng nhưng tôi thấy trên internet có một người rất thông minh biết về chương trình có tên Alacarte (chỉnh sửa menu Gnome dễ dàng) chương trình được cài đặt bằng trình quản lý phần mềm và tôi rất vui vì nó vẫn được cài đặt theo mặc định nhưng không phải là chương trình nổi tiếng nhưng tôi rất vui vì nó vẫn có sẵn thông qua trình quản lý phần mềm và nó rất dễ sử dụng chỉ cần nhấp vào để tô sáng mục nhập chương trình đã gỡ cài đặt mà bạn muốn loại bỏ và nhấp vào xóa ở bên phải và thế là xong. có lẽ điều này sẽ giúp ích nếu những gợi ý khác không hiệu quả với bạn

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.