वर्तमान निर्देशिका को हटाने से फ़ाइल सिस्टम अखंडता या उसके तार्किक संगठन पर कोई प्रभाव नहीं पड़ता है। .
हटाने को रोकने के लिए POSIX मानक का पालन किया जाता है जो rmdir(2)
मैनुअल पेज में बताता है :
यदि पथ तर्क उस पथ को संदर्भित करता है जिसका अंतिम घटक या तो डॉट या डॉट-डॉट है, तो rmdir () विफल हो जाएगा।
rm
मैनुअल पेज में एक तर्क पाया जा सकता है :
अनजाने में कुछ करने के परिणामों से बचने के लिए, डॉट उपयोगिता और नाम डॉट को हटाने के लिए rm उपयोगिता वर्जित है:
rm -r। *
दूसरी ओर, स्पष्ट रूप से वर्तमान निर्देशिका को हटाना (अर्थात इसका पूर्ण या सापेक्ष पथ बताते हुए) यूनिक्स के तहत एक अनुमत ऑपरेशन है, कम से कम एसवीआर 3 के बाद से क्योंकि यूनिक्स संस्करण 7 के साथ एसवीआर 2 तक निषिद्ध था। यह बहुत कुछ वैसा ही होता है जब आप किसी ऐसी फ़ाइल को हटाते हैं जिसे सक्रिय रूप से पढ़ा या लिखा जा रहा है। डिलीट फ़ाइल तक पहुँचने वाली प्रक्रियाएँ अपना पढ़ना और लिखना जारी रखती हैं जैसे कि कुछ नहीं हुआ। आपके द्वारा किसी प्रक्रिया वर्तमान निर्देशिका को हटा दिए जाने के बाद, यह निर्देशिका अधिक सुलभ नहीं है, हालांकि इसका पथ लेकिन इसका इनोड फ़ाइल सिस्टम पर मौजूद रहता है जब तक कि प्रक्रिया मर जाती है या अपनी स्वयं की निर्देशिका को बदल नहीं देती है।
ध्यान दें कि प्रक्रिया अपनी cwd (उदा cd ..
) को बदलने के लिए अपनी वर्तमान निर्देशिका के सापेक्ष पथ का उपयोग करने में सक्षम नहीं होगी क्योंकि ..
इसकी वर्तमान निर्देशिका में कोई प्रविष्टि नहीं है।
किसी प्रकार जब rmdir .
, तो वे संभावित उम्मीद वर्तमान निर्देशिका प्रविष्टि हटा दिया जाना चाहिए, लेकिन जब एक निर्देशिका निकाल दिया जाता है (अपने रास्ते का उपयोग कर), तीन निर्देशिका प्रविष्टियों वास्तव में निकाल दिए जाते हैं, .
, ..
, और निर्देशिका ही।
केवल .
और इस निर्देशिका की निर्देशिका प्रविष्टि को हटाने से एक गैर अनुपालन निर्देशिका नहीं बनेगी, लेकिन जैसा कि पहले ही कहा गया है, यह मानक द्वारा निषिद्ध है।
जैसा कि @ इमानुएल ने ठीक ही कहा है, एक और कारण है जिसे हटाने .
की अनुमति नहीं है। कम से कम एक POSIX अनुरूप ओएस (HFS + के साथ मैक ओएस एक्स) है, जो मजबूत प्रतिबंधों के साथ, मौजूदा निर्देशिकाओं को हार्डलिंक बनाने का समर्थन करता है। ऐसे मामले में, निर्देशिका के अंदर से कोई स्पष्ट तरीका नहीं है यह जानने के लिए कि किस हार्डलिंक को हटाने की उम्मीद है।