คุณจะลบโฟลเดอร์ชื่อ * in / from bash ได้อย่างไร?


8

สมมติว่าผมมีโฟลเดอร์ชื่อภายใต้* /ฉันรู้ว่าคำสั่งทั่วไปเช่น rm -rf * จะไม่ทำงาน ความช่วยเหลือใด ๆ


2
โดยทางเทคนิคแล้วrm *จะทำการลบโฟลเดอร์นั้น
พันเอก Panic

คำตอบ:


7

ใช้คำสั่งสั้น ๆ นี้:

rm /\*

1
ไม่สามารถใช้งานได้ - เป็นไดเรกทอรี
naught101

1
จากนั้นใช้ 'rmdir / \ *' แทน ตัวเลือกอื่นคือใช้ 'rm -rf / \ *' แต่การทำอันหลังนั้นมีอันตรายหากคุณทำผิด
Serge

14

คุณสามารถอ้างอาร์กิวเมนต์เดี่ยวเพื่อป้องกันการประมวลผลโดยเชลล์

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โดยไม่มีปัญหา


ไม่จำเป็นต้องใช้. คุณสามารถหลีกเลี่ยง '*' เพื่อให้เชลล์ไม่ขยายตามที่ Serge ตอบ
darnir

5
@darnir คุณไม่จำเป็นต้องใช้มันหากคุณไม่ชอบมัน แต่คุณต้องรู้ว่าตัวละครตัวไหนที่ต้องหลบหนีเมื่อใช้แนวทางของ Serge (พิจารณา&) และหลบหนีพวกมันทีละตัว ฉันจึงพิจารณาว่าการหลบหนีของแต่ละคนจะด้อยกว่าและโพสต์ทางเลือกนี้
Daniel Beck

3
@Serge ฉันไม่ได้พูดคำตอบของคุณไม่ดี จะได้รับงานทำและได้รับการยอมรับ อย่างไรก็ตามหากมีหลายวิธี (แตกต่างกันพอสมควร) ในการบรรลุบางสิ่งด้วยข้อดีและข้อเสียที่แตกต่างกันอย่าลังเลที่จะเขียนรายการทั้งหมด พวกเขาอาจไม่ทำงานในทุกสถานการณ์ดังนั้นจึงเป็นเรื่องดีที่มีทางเลือกให้เลือก โปรดทราบว่าผู้ใช้ที่มีปัญหาคล้ายกัน (ไม่เหมือนกัน) อาจมาถึงคำถามจาก Google นอกจากนี้ยังเป็นความคิดที่ดีที่จะขยายขอบเขตหากนำไปสู่คำถามที่สามารถช่วยเหลือผู้คนได้มากขึ้น การเขียนคำตอบในวงกว้างยิ่งขึ้นเป็นการเริ่มต้นที่นั่น
Daniel Beck

1
ฉันไม่ได้ตั้งเป้าหมายที่จะได้รับคำตอบทั้งหมดและด้วยความเจ็บปวดสูงสุด ฉันใช้เวลาสองสามวัน (สุดสัปดาห์นี้) กับบางเว็บไซต์เหล่านี้ ความประทับใจแรกคือฉันสามารถแบ่งปันความรู้ให้กับผู้คนได้ด้วยเหตุนี้ฉันจึงเริ่มให้คำตอบ บนดังนั้นฉันได้รับ 760 คะแนนในสามวันนี้ ใช่บางคำตอบของฉันไม่ได้คุณภาพระดับไฮเอนด์จากจุดที่แตกต่างกัน แต่พวกเขาทั้งหมดถูกต้อง แต่ตอนนี้ฉันเห็นแล้วว่าคนส่วนใหญ่ที่ตั้งคำถามที่นี่ - เป็นนักเรียนที่ไม่ต้องการใช้เวลาในการค้นหาวิธีแก้ปัญหาด้วยตนเอง ฉันจะใช้เวลาทำอะไร
Serge

1
@Serge ไม่แน่ใจว่าความคิดเห็นของคุณเกี่ยวกับอะไร จากสิ่งที่ฉันเห็นหลังจากที่คุณพูดถึงมันคุณมีจุดเริ่มต้นที่น่าประทับใจในการมีส่วนร่วมในเว็บไซต์ หากมีบางสิ่งที่ฉันสามารถช่วยคุณในการใช้งานเว็บไซต์หรืออย่างอื่นที่คุณต้องการพูดคุยโปรดอย่าลังเลที่จะ ping ฉันในการแชท ฉันอยู่ใน UTC + 2 ดังนั้นคุณอาจไม่ได้รับคำตอบเร็ว ๆ นี้ เกี่ยวกับคำถาม "เริ่มต้น": โปรดทราบว่าข้อมูลบางอย่างไม่สามารถค้นพบได้ง่าย การอ่านbashหน้าคนเต็มใช้เวลาสักครู่ถ้าคุณไม่รู้ว่าจะค้นหาอะไร
Daniel Beck
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.