में शुरुआत , वहाँ केवल नंगे था mkdir
आदेश। यूनिक्स के डिजाइन सिद्धांतों के अनुसार, इस सरल कमांड ने एक सरल कार्य किया: एक निर्देशिका बनाना।
बाद में, एक सामान्य उपयोग के मामले को संभालने के लिए mkdir
एक -p
विकल्प का अधिग्रहण किया जहां कॉलर शून्य बनाना चाहता है, एक या अधिक निर्देशिका यह सुनिश्चित करने के लिए कि एक विशेष पथ मौजूद है। इसे कई कारणों से डिफ़ॉल्ट ऑपरेशन नहीं बनाया गया था। सबसे पहले, सभी प्रणालियों में यह अधिक जटिल विशेषता नहीं थी, और -p
विकल्प की आवश्यकता होती थी, जिसका अर्थ था कि इसका इस्तेमाल करने वाली लिपियों mkdir: invalid option -z
को कभी-कभी निर्देशिका बनाने में अजीब तरह से विफल होने के बजाय एक उचित त्रुटि संदेश (कुछ ऐसा ) मिलेगा । दूसरा, और सबसे महत्वपूर्ण बात, का व्यवहार सभी मामलों में mkdir -p
संगत प्रतिस्थापन नहीं है mkdir
।
विशेष रूप से, अधिकांश फाइल सिस्टम पर, mkdir
एक परमाणु संचालन होता है । यदि कोई प्रोग्राम चलता है mkdir playground
और कमांड सफल होता है, तो प्रोग्राम को पता है कि उसने playground
डायरेक्टरी बनाई है । यह प्रोग्राम को नई निर्देशिका को उसके अनन्य खेल के मैदान के रूप में मानने की अनुमति देता है: यदि उसी प्रोग्राम का एक और उदाहरण समवर्ती चल रहा है, तो उसका कॉल mkdir playground
विफल हो जाएगा। यह संपत्ति स्पष्ट रूप से प्रदान नहीं की गई है mkdir -p
क्योंकि यह तर्क को अस्तित्व में लाने की अनुमति देता है।
यदि mkdir -p
शुरुआत से ही अस्तित्व में था, तो इसे डिफ़ॉल्ट मोड बनाया जा सकता था, जिसमें mkdir -a
सिंगल-डायरेक्टरी क्रिएशन कमांड के लिए कुछ था। लेकिन यह कि सामान्य यूनिक्स डिजाइन दर्शन का पालन नहीं किया गया होगा: सबसे बुनियादी उपयोगिताओं अंतर्निहित प्राइमेटिव के आसपास सरल आवरण हैं, हठधर्मी व्यवहार (जैसे एक ही बार में कई निर्देशिकाएं बनाना) फैंसी विकल्पों की आवश्यकता होती है।
alias mkdir="mkdir -p"
:।