यूनिक्स के एक पुराने संस्करण में, rm
यदि वे खाली थे , तो कमांड निर्देशिका को हटा देगा। अनुसंधान यूनिक्स आठवें संस्करण मैन पेज से rm के लिए : "यदि एक प्रविष्टि एक निर्देशिका है तो केवल खाली होने पर इसे हटा दिया जाता है।" मुझे यह व्यवहार पसंद है, इसलिए मुझे यह उपनाम मिला है /etc/profile
: alias rm='rm -d'
मैं GNU कोरुटिल्स संस्करण का उपयोग कर रहा हूं rm
, जिसमें आगे जाने और निर्देशिका खाली होने पर निर्देशिकाओं को हटाने के लिए -d
कहा rm
गया है।
अब तक सब ठीक है। यह उपनाम मुझे rm
पुराने दिनों की तरह उपयोग करने की अनुमति देता है । हालाँकि, मैं इसे एक कदम आगे ले जाना चाहूँगा। मुझे पसंद हैrm
किसी निर्देशिका को हटाने के लिए भले ही निर्देशिका में अन्य निर्देशिकाएँ हों, जब तक कि निर्देशिकाएं केवल एक ही चीज़ न हों। इससे कोई फर्क नहीं पड़ता कि निर्देशिका संरचना कितनी गहरी है, जब तक कि वहां कोई फाइल नहीं है, बस खाली (एक बार जब आप नीचे तक पहुंचते हैं) निर्देशिकाएं, मैं rm
उन सभी को निकालना चाहूंगा ।
क्या यह एक उपनाम के रूप में लिखा जा सकता है जो अभी भी नियमित रूप से कार्य करेगा rm
और इसके लिए पारित किसी भी फाइल को हटा देगा?
mkdir -p a/b1/c2 && mkdir -p a/b2/c2; rmdir -p a/b1/c1;
, तो मैं अभी भी ए, / बी 2, और ए / बी 2 / सी 2 के साथ बचा हुआ हूं। मैं जो चाहता हूं, वह सिर्फ शीर्ष स्तर (इस मामले में) को rm
पास करना है , और इसके नीचे का सब कुछ हटा दिया है।
rmdir -p
?