การลบไดเร็กทอรีปัจจุบันไม่ส่งผลต่อความสมบูรณ์ของระบบไฟล์หรือองค์กรโลจิคัล การป้องกันการ.
ลบถูกทำเพื่อทำตามมาตรฐาน POSIX ซึ่งระบุไว้ในrmdir(2)
หน้าคู่มือ:
หากอาร์กิวเมนต์ของพา ธ อ้างถึงพา ธ ที่มีองค์ประกอบสุดท้ายคือ dot หรือ dot-dot rmdir () จะล้มเหลว
เหตุผลหนึ่งสามารถพบได้ในrm
หน้าคู่มือ:
ยูทิลิตี้ rm เป็นสิ่งต้องห้ามในการลบชื่อจุดและจุดจุดเพื่อหลีกเลี่ยงผลที่ตามมาของการทำบางสิ่งเช่น:
rm -r. *
ในทางตรงกันข้ามการลบไดเรกทอรีปัจจุบัน (เช่นโดยการระบุเส้นทางแบบเต็มหรือแบบสัมพัทธ์) เป็นการดำเนินการที่ได้รับอนุญาตภายใต้ระบบปฏิบัติการ Unix อย่างน้อยก็ตั้งแต่ SVR3 เนื่องจากห้ามใช้กับ Unix เวอร์ชัน 7 จนถึง SVR2 สิ่งนี้คล้ายกับสิ่งที่เกิดขึ้นเมื่อคุณลบไฟล์ที่กำลังอ่านหรือเขียน กระบวนการเข้าถึงไฟล์ลบจะดำเนินการอ่านและเขียนต่อไปเหมือนไม่มีอะไรเกิดขึ้น หลังจากคุณลบไดเร็กทอรีปัจจุบันของกระบวนการออกไดเร็กทอรีนี้จะไม่สามารถเข้าถึงได้อีกต่อไปแม้ว่าพา ธ จะมีอยู่ แต่ไอโหนดจะยังคงอยู่บนระบบไฟล์จนกว่ากระบวนการจะตายหรือเปลี่ยนไดเร็กทอรีของตัวเอง
โปรดทราบว่ากระบวนการจะไม่สามารถใช้พา ธ ที่สัมพันธ์กับไดเรกทอรีปัจจุบันเพื่อเปลี่ยน cwd (เช่นcd ..
) เนื่องจากไม่มี..
รายการในไดเรกทอรีปัจจุบันอีกต่อไป
เมื่อชนิดคนที่rmdir .
พวกเขามีแนวโน้มคาดว่ารายการไดเรกทอรีปัจจุบันจะถูกลบออก แต่เมื่อไดเรกทอรีจะถูกลบออก (โดยใช้เส้นทางของมัน) สามรายการไดเรกทอรีจะถูกลบออกจริง.
, ..
และไดเรกทอรีของตัวเอง
การลบออกเท่านั้น.
และไม่ใช่รายการไดเรกทอรีของไดเรกทอรีนี้จะสร้างไดเรกทอรีที่ไม่สอดคล้อง แต่ตามที่ระบุไว้แล้วมันเป็นสิ่งต้องห้ามโดยมาตรฐาน
ดังที่ @Emmanuel ชี้ให้เห็นอย่างถูกต้องมีเหตุผลที่สองว่าทำไม.
ไม่อนุญาตให้นำออก มีอย่างน้อยหนึ่ง POSIX ที่รองรับ OS (Mac OS X ที่มี HFS +) ที่มีข้อ จำกัด ที่แข็งแกร่งสนับสนุนการสร้างลิงก์ไปยังไดเรกทอรีที่มีอยู่ ในกรณีเช่นนี้ไม่มีวิธีที่ชัดเจนจากภายในไดเรกทอรีที่จะทราบว่าฮาร์ดลิงก์ใดที่เป็นสิ่งที่คาดว่าจะถูกลบออก