ไม่แยกวิเคราะห์ผลลัพธ์ของ ls
คำแนะนำของฉันคือการหลีกเลี่ยงการแยกผลลัพธ์ของ ls [ 1 ]ยิ่งถ้าร่วมกับdel
คำสั่ง สิ่งนี้ด้วยเหตุผลหลายประการส่วนใหญ่เกี่ยวข้องกับอักขระที่ไม่คาดคิดและไม่ได้รับอนุญาตตามปกติในชื่อไฟล์
แม้ว่าคุณควรคาดหวังว่าชื่อไฟล์ที่อยู่ในแพ็คเกจ Linux จะ"ทำงานได้ดี"แต่ปัญหานี้อาจปรากฏขึ้นหากไฟล์อื่นมีอยู่ในไดเรกทอรีเดียวกัน แต่คุณไม่ทราบหรือแจ้งให้ทราบล่วงหน้า
เป็นการดีกว่าที่จะใช้find
การขยายแท็บ (เริ่มเขียนชื่อและกดTab) การขยายชื่อไฟล์ [ 2 ]เป็น*MyKey*
...
วิธีแก้ปัญหาที่รวดเร็ว
เนื่องจากคุณต้องการเลือกแพ็คเกจทั้งหมด (ที่ลงท้ายด้วย.deb
) ด้วย"google"ข้างในคุณสามารถสร้างคำขอด้วย wildcard *
*google*.deb
และทำง่ายๆ
rm -i *google*.deb
ที่จะเลือกชื่อไฟล์แต่ละชื่อด้วย"google" ที่อยู่ตรงกลางซึ่งจะเสร็จสิ้นเพื่อ.deb
นำเสนอในไดเรกทอรีปัจจุบัน ตัวเลือก-i
(โต้ตอบ) จะแจ้งให้ยืนยันซึ่งเป็นนิสัยที่ดีเมื่อคุณลบไฟล์ที่มีการขยายพารามิเตอร์
ทางออกใกล้เคียงกับปรัชญาของความพยายามของคุณ
หากจุดประสงค์ของคุณคือการสร้างชิ้นส่วนบรรทัดคำสั่งของคุณหลังจากชิ้นดังนั้นคุณได้ทำls
หลังจากls | grep google
และหลังจากที่คุณตรวจสอบผลลัพธ์ของคุณคุณสามารถดำเนินการใน subshell $(...)
ด้วย
rm -i $(ls | grep google)
ได้เร็วขึ้นและอันตรายมากขึ้นวิธี [ 3 ]คือการใช้งาน!!
ls | grep google
rm -i $(!!)
ที่จะดำเนินการคำสั่งสุดท้ายเสร็จในประวัติของคุณ คุณสามารถป้องกันตัวเองจากความจริงที่ว่าคุณไม่มีการควบคุมภาพของสายที่คุณจะดำเนินการถ้าคุณได้เปิดใช้งานตัวเลือกล่วงหน้าเปลือกด้วยhistverify
shopt -s histverify
rm -i *chrome*.deb