สมมติว่าผมมีโฟลเดอร์ชื่อภายใต้*
/
ฉันรู้ว่าคำสั่งทั่วไปเช่น rm -rf * จะไม่ทำงาน ความช่วยเหลือใด ๆ
สมมติว่าผมมีโฟลเดอร์ชื่อภายใต้*
/
ฉันรู้ว่าคำสั่งทั่วไปเช่น rm -rf * จะไม่ทำงาน ความช่วยเหลือใด ๆ
คำตอบ:
คุณสามารถอ้างอาร์กิวเมนต์เดี่ยวเพื่อป้องกันการประมวลผลโดยเชลล์
rm -r '/*'
ทดสอบอย่างปลอดภัยโดยใช้ls
(ในโฟลเดอร์ที่มีไฟล์):
$ ls '*'
ls: *: No such file or directory
ในกรณีนี้อัญประกาศจะทำงานได้เช่นกัน แต่หากมี$
ส่วนเกี่ยวข้องพวกเขาจะไม่ทำเช่นนั้นเนื่องจากเชลล์จะถือว่าเป็นตัวแปร:
$ ls "foo$bar"
ls: foo: No such file or directory
$ ls 'foo$bar'
ls: foo$bar: No such file or directory
สำหรับ GNU rm
คุณสามารถเพิ่ม--
ก่อนอาร์กิวเมนต์ของชื่อไฟล์เพื่อป้องกันการแยกวิเคราะห์เป็นอาร์กิวเมนต์ นี่จะช่วยให้คุณสามารถลบไฟล์ที่ตั้งชื่อ-rf
โดยไม่มีปัญหา
&
) และหลบหนีพวกมันทีละตัว ฉันจึงพิจารณาว่าการหลบหนีของแต่ละคนจะด้อยกว่าและโพสต์ทางเลือกนี้
bash
หน้าคนเต็มใช้เวลาสักครู่ถ้าคุณไม่รู้ว่าจะค้นหาอะไร
rm *
จะทำการลบโฟลเดอร์นั้น