में शुरुआत , वहाँ केवल नंगे था 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":।