คำสั่งให้ลบไฟล์และโฟลเดอร์ทั้งหมดซ้ำรวมถึงไฟล์ที่ซ่อนอยู่ใน Mac OS Terminal?


11

rm -rf * จะลบไฟล์และโฟลเดอร์ทั้งหมด แต่จะไม่ถูกซ่อน

rm -rf .* จะลบไฟล์และโฟลเดอร์ที่ซ่อนทั้งหมด แต่ไม่ใช่ไฟล์ที่ไม่ถูกซ่อนถูกต้องหรือไม่

คำสั่งประเภทใดที่ควรลบไฟล์และโฟลเดอร์ทั้งหมดรวมถึงไฟล์ที่ซ่อนอยู่? (ยกเว้น. และ .. ); ?

คำตอบ:


13
rm -rf * .*

จะทำเคล็ดลับ


1
NO! .*จะขยายไปยังรายการที่มองไม่เห็นทั้งหมดในไดเรกทอรีปัจจุบันรวมถึง .. - ซึ่งหมายความว่าการใช้.*เป็นอาร์กิวเมนต์เพื่อrm -rfจะพยายามลบไดเรกทอรีด้านบนไดเรกทอรีที่คุณอยู่ในปัจจุบันและเนื้อหาทั้งหมด rm จะปฏิเสธที่จะทำ แต่ฉันไม่คิดที่จะใช้ความปลอดภัยนี้ ...
Gordon Davisson

@Gordon Davisson: ฉันได้สร้างไดเรกทอรี ฉันได้เพิ่มไฟล์เข้าไปแล้วรวมถึงไฟล์ที่ซ่อนอยู่ ฉันทำคำสั่งนั้น มันได้ลบเนื้อหาทั้งหมดในไดเรกทอรีนั้นซ้ำแล้วซ้ำอีกและมันไม่ได้ลบเนื้อหาใด ๆ ข้างต้นไดเรกทอรีนั้น คุณช่วยอธิบายความคิดเห็นของคุณได้ไหม?
MEM

ขอบคุณสำหรับการชี้แจงความคิดเห็นของคุณด้านบน ตอนนี้ฉันเข้าใจประเด็นของคุณแล้ว ข้อเสนอแนะทางเลือกใดแล้ว
MEM

วิธีการใช้findกับ-deleteธง ...
user1055604

1
@GordonDavisson rmควรพิมพ์rm: "." and ".." may not be removedข้อความในกรณีนั้น - มันจะไม่ลบไดเรกทอรีหลักโดยอัตโนมัติ
slhck

1

ลองสิ่งนี้:

find . -mindepth 1 -delete

ฉันไม่แน่ใจว่า-mindepthได้รับการสนับสนุนจากการใช้งานทั้งหมดของfind; หากคุณไม่มีมัน-pathควรให้วิธีอื่นในการป้องกันไม่ให้พยายามลบ.:

find . -path "*/*" -delete

BSD findก็มีตัวเลือกเช่นกัน yup
slhck


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.