ด้วยเหตุผลบางอย่างฉันมีรายการเมนูเริ่มต้นด้านซ้ายจากแอปพลิเคชัน (เช่น Gnome Do, Synapse, Leafpad) และสงสัยว่ามีวิธีลบรายการเด็กกำพร้าทั้งหมดสำหรับแอปพลิเคชันที่ไม่ได้ติดตั้งอีกต่อไปหรือไม่
ด้วยเหตุผลบางอย่างฉันมีรายการเมนูเริ่มต้นด้านซ้ายจากแอปพลิเคชัน (เช่น Gnome Do, Synapse, Leafpad) และสงสัยว่ามีวิธีลบรายการเด็กกำพร้าทั้งหมดสำหรับแอปพลิเคชันที่ไม่ได้ติดตั้งอีกต่อไปหรือไม่
คำตอบ:
คุณสามารถใช้คำสั่งต่อไปนี้เพื่อแสดงรายการไอคอนแอปพลิเคชันที่ลิงก์ไปยังโปรแกรมที่ไม่มีอยู่:
for i in {/usr,~/.local}/share/applications/*.desktop; do which $(grep -Poh '(?<=Exec=).*?( |$)' $i) > /dev/null || echo $i; done
ฉันสงสัยว่าคุณจะพบว่าส่วนใหญ่ของคุณเป็นไอคอนที่กำหนดเองในโฟลเดอร์บ้านของคุณเนื่องจากผู้จัดการแพคเกจเหล่านี้จะไม่ได้รับการทำความสะอาดโดยอัตโนมัติ หากเป็นกรณีนี้และคุณต้องการลบทิ้ง ทั้งหมดในครั้งเดียวคุณสามารถใช้การแก้ไขคำสั่งก่อนหน้าได้:
for i in ~/.local/share/applications/*.desktop; do which $(grep -Poh '(?<=Exec=).*?( |$)' $i) > /dev/null || trash $i; done
หรือแน่นอนเรียกดู~/.local/share/applications/
ใน Nautilus และถังขยะผ่านอินเทอร์เฟซแบบกราฟิก
หากตามเมนูเริ่มคุณหมายถึงเมนู 'แอปพลิเคชัน' คุณสามารถแก้ไขได้โดยไปที่: ระบบ -> การตั้งค่า -> เมนูหลัก
คุณสามารถเพิ่มจัดเรียงใหม่แก้ไขและลบรายการได้ตามต้องการ
เมื่อถอนการติดตั้งแอปพลิเคชั่นควรลบรายการเมนูที่ติดตั้งไว้ และใช้วิธีนี้กับเครื่องของฉัน
ถ้ามันทำงานแตกต่างกันมันเป็นข้อผิดพลาดของแพคเกจเฉพาะหรือปัญหาในระบบของคุณ ฉันไม่อยากเชื่อว่าคุณมีเด็กกำพร้ามากกว่า 40 คน มันจะเป็นอาการของปัญหา
อันนี้ยาก แต่ฉันต้องการอย่างน้อยก็เพื่อบอกคุณว่าปัญหาคืออะไร
Gnome เก็บแอปพลิเคชันที่ติดตั้งไว้ใน / usr / share / แอปพลิเคชันด้วยไฟล์ที่ลงท้ายด้วย. desktop (ดังนั้นโปรแกรม vlc จะถูกเรียกใช้โดย vlc.desktop)
ภายในแต่ละส่วนจะมีส่วน "หมวดหมู่" ซึ่งคุณสามารถตั้งค่าในส่วนของเมนูแอปพลิเคชันที่โปรแกรมที่คุณต้องการ สิ่งคือ: วิธีเดียวที่ฉันคิดว่ามันสามารถทำได้สิ่งที่คุณขอคือการใช้สคริปต์ทุบตีที่ถามว่าแพคเกจที่เกี่ยวข้องกับ. desktop ติดตั้งหรือไม่ หากไม่ใช่ให้ลบไฟล์ .desktop เมื่อคุณลบไฟล์ไฟล์นั้นจะออกจากเมนูและเมื่อแอพของคุณอยู่ในหมวดหมู่ไฟล์นั้นจะไม่แสดงขึ้นมา
อันนั้นอยู่นอกขอบเขตของฉันนิดหน่อยเพราะทุกคำสั่ง (dpkg, apt-get, ฯลฯ .. ) จะกลับทางออกที่ดีเสมอเมื่อพวกเขาบอกว่าไม่ได้ติดตั้งแพ็คเกจดังนั้นเราต้องอ่านทางออกจากแอพนั้นเพื่อค้นหา String (fi "ไม่ได้ติดตั้ง") ตรวจสอบและถ้ามี String อยู่หมายความว่าแอปพลิเคชันไม่ได้ติดตั้งและสามารถลบ .desktop ได้
ดังนั้นหากคุณต้องการคุณสามารถป้อนโฟลเดอร์ (/ usr / share / applications) และคลิกที่ไฟล์ที่สอดคล้องกับโปรแกรม พวกเขาจะหายไปจากเมนูแอปพลิเคชัน หากต้องการดำเนินการโดยอัตโนมัติฉันคิดว่าเราต้องการสคริปต์ทุบตีที่ดีในแทร็กที่ฉันพูด
ฉันหวังว่านี่จะช่วยได้บ้าง
ทางเลือก:
ทำตามคำตอบ @ ændrükต่อไปนี้เป็นโซลูชันที่คล้ายกันที่สนับสนุนช่องว่างในพา ธ และโฟลเดอร์ย่อยซึ่งสามารถใช้กับโฟลเดอร์เฉพาะหรือทั้งดิสก์เพื่อค้นหา.desktop
ไฟล์ที่เสียหาย(ทางลัด)
find {/usr,~/.local,/usr/local,}/share/applications/ -name '*.desktop' | while read -r line; do which $(grep -Poh '(?<=Exec=).*?( |$)' $line) > /dev/null || echo $line; done
สำหรับดิสก์ทั้งหมด
find / -name '*.desktop' | while read -r line; do which $(grep -Poh '(?<=Exec=).*?( |$)' $line) > /dev/null || echo $line; done
หมายเหตุ:วิธีการใด ๆ ที่สามารถแสดงการตรวจสอบเป็นบวกเท็จพบไฟล์สองครั้งก่อนที่จะลบพวกเขา
นี่อาจเป็นคำถามที่โพสต์เก่า แต่ฉันคิดว่าฉันควรจะพูดสอดต่อไปเนื่องจากฉันมีปัญหาเดียวกัน แต่ไม่มีคำแนะนำเหล่านี้ทำงาน แต่ฉันพบว่าบนอินเทอร์เน็ตเป็นคนฉลาดมากที่รู้จักโปรแกรมที่เรียกว่า Alacarte (แก้ไขเมนู GNOME ง่าย ๆ ) โปรแกรมที่ติดตั้งโดยใช้ตัวจัดการซอฟต์แวร์และฉันก็ตื่นเต้นที่มันยังคงมีอยู่เพราะมันใช้การติดตั้งเป็นค่าเริ่มต้น แต่ไม่ใช่ตอนนี้และไม่ใช่โปรแกรมที่รู้จักกันดี แต่ฉันดีใจที่มันยังมีให้ผ่านทางตัวจัดการซอฟต์แวร์และ ใช้งานง่ายมากเพียงคลิกที่เพื่อไฮไลต์รายการโปรแกรมที่ถอนการติดตั้งที่คุณต้องการกำจัดแล้วคลิกลบทางด้านขวาและทำเสร็จแล้ว อาจจะช่วยได้ถ้าคำแนะนำอื่น ๆ เหล่านี้ไม่เหมาะกับคุณ