ฉันจะลบไดเรกทอรีและเนื้อหาทั้งหมดได้อย่างไร


141

ในทุบตีทั้งหมดที่ฉันรู้คือว่า

rmdir directoryname

จะลบไดเรกทอรี แต่ถ้าว่างเปล่า มีวิธีบังคับลบไดเรกทอรีย่อยหรือไม่

คำตอบ:


216

คำสั่งต่อไปนี้จะทำเพื่อคุณ ใช้ความระมัดระวัง

rm -rf directoryname

52
"-f" คือ "--force" ซึ่งแทนที่การตรวจสอบสติและการกระตุ้นบางอย่าง rm -r directorynameคำสั่งปลอดภัยในการเริ่มต้นด้วยจะเป็น
จิมปารีส

ด้วยเหตุผลบางอย่างฉันได้รับrm: invalid option -- rข้อผิดพลาดเมื่อพยายามลบไดเรกทอรีด้วย rm -r <directoryname>
Sunspawn

@Sunspawn ตรวจสอบคำถามที่เกี่ยวข้องนี้เพื่อดูว่าเป็นอย่างนั้นหรือไม่
Marc.2377

1
@JimParis ฉันคิดว่าคำว่า "ปลอดภัย" นั้นมีความเกี่ยวข้อง สมมติว่าคุณกำลังเขียนสคริปต์เพื่อให้ทำงานบนคอมพิวเตอร์ระยะไกล สคริปต์นั้นมีคำสั่งที่ควรจะลบไดเรกทอรี ที่นี่จะเป็น "ปลอดภัยกว่า" ที่จะใช้rm -rf directorynamecoz ซึ่งคุณไม่ต้องการให้สคริปต์หยุดการทำงานชั่วคราวเนื่องจากกำลังรอการป้อนข้อมูลจากผู้ใช้ แน่นอนคุณต้องแน่ใจว่าการลบไดเรกทอรีจะไม่เป็นอันตราย
John Red

7

ถ้าrm -rf directorynameล้มเหลวคุณลองใช้หรือrm -R -f directorynamerm --recursive -f directoryname

หากคุณไม่มีโชคกับสิ่งเหล่านี้คุณควรลองติดตั้ง rm ใหม่หรือเปลี่ยนเชลล์


นี่คือตัวเลือกที่มีอยู่ในหน้า rm man ของฉันฉันค้นหามันโดยพิมพ์man rmเพื่อดูตัวเลือกของฉันในการลบแบบเรียกซ้ำและตัวเลือกบังคับ
เกลียด

rmรายการหน้าคนของคุณ-rหรือไม่ มันทำอะไร? (ลองใช้ในไดเรกทอรีที่คุณสร้างขึ้นเพื่อการทดสอบโดยมีไฟล์จำลองเท่านั้น (และอาจเป็นไดเรกทอรีย่อย) อยู่ในนั้น) คุณใช้ระบบปฏิบัติการใดอยู่
G-Man

ป.ล. ถ้าrm -rไม่ทำงานนั่นจะเป็นปัญหาของระบบปฏิบัติการไม่ใช่ปัญหาของเชลล์ (พูดอย่างเคร่งครัดมันจะเป็นปัญหากับรุ่นrmที่คุณใช้อยู่ดังนั้นคุณสามารถแก้ไขได้ด้วยการติดตั้งเวอร์ชันrmอื่นหรือค้นหาระบบของคุณเพื่อดูว่าคุณมีเวอร์ชันอื่นrmในไดเรกทอรีอื่นที่ไม่ใช่/bin.)
G-Man

อ่าใช่มั้ย ฉันลืมที่จะพูดถึงฉันใน Ubuntu 14.04 เมื่อฉันวิ่งman rmใน terminal ของฉันมันทำให้ฉันมีไฟล์ข้อความพร้อมlessโปรแกรมดูข้อความ ฉันเลื่อนพบรายการที่เยื้องพร้อมทั้งที่มีตัวเลือก-Rและ- recursive cozied กับตัวเลือก-rแสดงว่าข้อโต้แย้งเหล่านั้นเหมือนกันทั้งหมด
saterHater

1
แก้ไข: คุณได้ลองsudo rm -r directoryName ? กฎที่ไม่ได้เขียนไว้ของคำสั่งพื้นฐานคือ-rจะช่วยให้โปรแกรมสามารถเรียกใช้ซ้ำในทุกระบบไฟล์ของคุณ (เริ่มจากที่คุณเคยเลือก!) และ -f จะทำสิ่งต่าง ๆ อย่างแข็งขันแม้ว่าจะเป็นอันตรายก็ตาม 'cd', 'mv', 'ls' ส่วนใหญ่ถือหลักการนี้เป็นจริง ls -r /จะเป็น duzie และcp -rf / /dev/nullจะทำลายทุกอย่างในระบบไฟล์ของคุณ <- อย่าเรียกใช้คำสั่งนั้น!
saterHater
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.