"Mkdir" कमांड के साथ लिनक्स में निर्देशिकाएं कैसे बनाएं

यह मार्गदर्शिका आपको कमांड लाइन का उपयोग करके लिनक्स के भीतर नए फ़ोल्डर या निर्देशिका बनाने का तरीका दिखाएगी।

निर्देशिका बनाने के लिए आप जिस कमांड का उपयोग करते हैं वह mkdir है। यह आलेख आपको लिनक्स में निर्देशिका बनाने के साथ-साथ सभी उपलब्ध स्विच को कवर करने का मूल तरीका दिखाता है।

एक नई निर्देशिका कैसे बनाएँ

एक नई निर्देशिका बनाने का सबसे आसान तरीका निम्नानुसार है:

mkdir

उदाहरण के लिए, यदि आप परीक्षण नामक अपने घर फ़ोल्डर के नीचे एक निर्देशिका बनाना चाहते हैं, तो टर्मिनल विंडो खोलें और सुनिश्चित करें कि आप अपने घर फ़ोल्डर में हैं ( सीडी ~ कमांड का उपयोग करें)।

mkdir परीक्षण

नई निर्देशिका की अनुमतियों को बदलना

नया फ़ोल्डर बनाने के बाद आप अनुमतियां सेट करना चाहेंगे ताकि केवल एक निश्चित उपयोगकर्ता फ़ोल्डर तक पहुंच सके या कुछ लोग फ़ोल्डर में फ़ाइलों को संपादित कर सकें लेकिन अन्य ने केवल पढ़ा है।

पिछले खंड में, मैंने आपको दिखाया कि परीक्षण नामक निर्देशिका कैसे बनाएं। Ls कमांड चलाने से आपको उस निर्देशिका के लिए अनुमतियां दिखाई देगी:

एलएस -एलटी

संभावना है कि आपके पास इन पंक्तियों के साथ कुछ होगा:

drwxr-xr-x 2 मालिक समूह 4096 9 मार्च 1 9:34 परीक्षण

जिन बिट्स में हम रुचि रखते हैं वे drwxr-xr-x स्वामी और समूह हैं

डी हमें बताता है कि परीक्षण एक निर्देशिका है।

डी के बाद पहले तीन वर्ण मालिक के नाम से निर्दिष्ट निर्देशिका के लिए स्वामी अनुमतियां हैं।

अगले तीन वर्ण समूह नाम द्वारा निर्दिष्ट फ़ाइल के लिए समूह अनुमतियां हैं। फिर विकल्प आर, डब्ल्यू, और एक्स हैं। - इसका मतलब है कि एक अनुमति गुम है। समूह के किसी भी व्यक्ति के ऊपर उदाहरण में फ़ोल्डर तक पहुंच सकते हैं और फ़ाइलों को पढ़ सकते हैं लेकिन फ़ोल्डर में नहीं लिख सकते हैं।

अंतिम तीन वर्ण सभी उपयोगकर्ताओं के पास अनुमतियां हैं और जैसा कि आप उपरोक्त उदाहरण में देख सकते हैं, समूह अनुमतियों के समान हैं।

फ़ाइल या फ़ोल्डर के लिए अनुमतियों को बदलने के लिए आप chmod कमांड का उपयोग कर सकते हैं। Chmod कमांड आपको 3 संख्या निर्दिष्ट करने देता है जो अनुमतियां सेट करते हैं।

अनुमतियों का मिश्रण प्राप्त करने के लिए आप संख्याओं को एक साथ जोड़ते हैं। उदाहरण के लिए अनुमतियों को पढ़ने और निष्पादित करने के लिए आपको जिस नंबर की आवश्यकता है, वह 5 है, पढ़ने और लिखने की अनुमतियां प्राप्त करने के लिए संख्या 6 है और लिखने और अनुमतियों को निष्पादित करने के लिए संख्या 3 है।

याद रखें कि आपको chmod कमांड के हिस्से के रूप में 3 संख्या निर्दिष्ट करने की आवश्यकता है। पहला नंबर मालिक अनुमतियों के लिए है, दूसरा नंबर समूह अनुमतियों के लिए है और अंतिम संख्या सभी के लिए है।

उदाहरण के लिए मालिक पर पूर्ण अनुमतियां प्राप्त करने के लिए, समूह पर अनुमतियां पढ़ें और निष्पादित करें और किसी और के लिए कोई अनुमतियां निम्न टाइप करें:

chmod 750 परीक्षण

यदि आप समूह नाम को बदलना चाहते हैं जो फ़ोल्डर का मालिक है तो chgrp कमांड का उपयोग करें।

उदाहरण के लिए, कल्पना करें कि आप एक निर्देशिका बनाना चाहते हैं जो आपकी कंपनी के सभी एकाउंटेंट एक्सेस कर सकें।

सबसे पहले, निम्नलिखित टाइप करके समूह खाते बनाएं:

groupadd खाते

यदि आपके पास समूह बनाने के लिए सही अनुमति नहीं है तो आपको अतिरिक्त विशेषाधिकार प्राप्त करने के लिए सूडो का उपयोग करने की आवश्यकता हो सकती है या su कमांड का उपयोग करके वैध अनुमतियों वाले खाते में स्विच करना पड़ सकता है।

अब आप समूह को निम्नलिखित टाइप करके फ़ोल्डर में बदल सकते हैं:

chgrp खाते

उदाहरण के लिए:

chgrp खातों का परीक्षण

खाता समूह में किसी को भी देने के लिए, साथ ही मालिक के रूप में पढ़ने, लिखने और निष्पादित करने के लिए, लेकिन केवल सभी को पढ़ने के लिए आप निम्न आदेश का उपयोग कर सकते हैं:

chmod 770 परीक्षण

खाता समूह में उपयोगकर्ता जोड़ने के लिए आप शायद निम्न आदेश का उपयोग करना चाहेंगे:

usermod -a -G खाते <उपयोगकर्ता नाम>

उपर्युक्त आदेश खाता समूह को उस माध्यमिक समूहों की सूची में जोड़ता है जिस पर उपयोगकर्ता तक पहुंच है।

एक निर्देशिका कैसे बनाएं और उसी समय अनुमतियां सेट करें

आप एक निर्देशिका बना सकते हैं और उसी निर्देशिका का उपयोग कर उसी निर्देशिका के लिए अनुमतियां सेट कर सकते हैं:

mkdir -m777

उपरोक्त आदेश एक फ़ोल्डर बनाएगा जिसे सभी के पास पहुंच है। यह बहुत दुर्लभ है कि आप इस तरह की अनुमतियों के साथ कुछ भी बनाना चाहते हैं।

एक फ़ोल्डर और आवश्यक माता-पिता बनाएं जो आवश्यक हैं

कल्पना कीजिए कि आप एक निर्देशिका संरचना बनाना चाहते हैं लेकिन आप प्रत्येक व्यक्तिगत फ़ोल्डर को रास्ते में नहीं बनाना चाहते हैं और पेड़ के नीचे अपना रास्ता काम नहीं करना चाहते हैं।

उदाहरण के लिए, हो सकता है कि आप अपने संगीत के लिए फ़ोल्डर बना रहे हों:

रॉक फ़ोल्डर, फिर एलिस कूपर और रानी फ़ोल्डर बनाने के लिए परेशान करना होगा और फिर रैप फ़ोल्डर और डॉ ड्रे फ़ोल्डर और फिर जैज़ फ़ोल्डर और फिर लुइसजोर्डन फ़ोल्डर बनाएं।

निम्न स्विच निर्दिष्ट करके आप फ्लाई पर सभी मूल फ़ोल्डरों को बना सकते हैं यदि वे पहले से मौजूद नहीं हैं।

mkdir -p <फ़ोल्डर नाम>

उदाहरण के लिए, ऊपर सूचीबद्ध फ़ोल्डर्स में से एक बनाने के लिए निम्न आदेश आज़माएं:

mkdir -p ~ / संगीत / रॉक / एलिसकोपर

पुष्टि प्राप्त करना कि एक निर्देशिका बनाई गई थी

डिफ़ॉल्ट रूप से, mkdir आदेश आपको नहीं बताता है कि क्या निर्देशिका आप बना रहे हैं सफलतापूर्वक बनाई गई थी। यदि कोई त्रुटि दिखाई नहीं देती है तो आप इसे मान सकते हैं।

यदि आप अधिक वर्बोज आउटपुट प्राप्त करना चाहते हैं ताकि आप जान सकें कि क्या बनाया गया है, निम्न स्विच का उपयोग करें।

mkdir -v

आउटपुट mkdir की लाइनों के साथ होगा : बनाई गई निर्देशिका / पथ / से / निर्देशिका नाम

& # 34; mkdir & # 34; का उपयोग करना एक शेल स्क्रिप्ट में

कभी-कभी आप शेल स्क्रिप्ट के हिस्से के रूप में "mkdir" कमांड का उपयोग करना चाहेंगे। उदाहरण के लिए, आइए एक स्क्रिप्ट को देखें जो पथ स्वीकार करता है। जब स्क्रिप्ट निष्पादित की जाती है तो यह फ़ोल्डर बनायेगी और "हैलो" नामक एक टेक्स्ट फ़ाइल जोड़ देगा।

#! / Bin / bash

mkdir $ @

सीडी $ @

हैलो स्पर्श करें

पहली पंक्ति को आपके द्वारा लिखे गए प्रत्येक स्क्रिप्ट में शामिल किया जाना चाहिए और यह दिखाने के लिए प्रयोग किया जाता है कि यह वास्तव में एक बाश स्क्रिप्ट है।

फ़ोल्डर बनाने के लिए "mkdir" कमांड का उपयोग किया जाता है। दूसरी और तीसरी पंक्ति के अंत में "$ @" ( इनपुट पैरामीटर के रूप में भी जाना जाता है ) को स्क्रिप्ट चलाने के दौरान निर्दिष्ट मान के साथ प्रतिस्थापित किया जाता है।

"Cd" कमांड आपके द्वारा निर्दिष्ट निर्देशिका में बदल जाता है और अंत में स्पर्श कमांड "हैलो" नामक एक खाली फ़ाइल बनाता है।

आप अपने लिए स्क्रिप्ट को आज़मा सकते हैं। ऐसा करने के लिए इन निर्देशों का पालन करें:

  1. एक टर्मिनल विंडो खोलें (Alt और T दबाएं इसे करना चाहिए)
  2. नैनो createhellodirectory.sh दर्ज करें
  3. संपादक में उपरोक्त आदेशों में टाइप करें
  4. एक ही समय में CTRL और O दबाकर फ़ाइल को सहेजें
  5. एक ही समय में CTRL और X दबाकर फ़ाइल से बाहर निकलें
  6. Chmod + x createhellodirectory.sh टाइप करके अनुमतियां बदलें
  7. टाइप करके ./createhellodirectory.sh परीक्षण टाइप करके स्क्रिप्ट चलाएं

जब आप स्क्रिप्ट चलाते हैं तो "test" नामक एक निर्देशिका बनाई जाएगी और यदि आप उस निर्देशिका ( सीडी परीक्षण) में बदल जाते हैं और एक निर्देशिका सूची ( एलएस) चलाते हैं , तो आपको "हैलो" नामक एक फ़ाइल दिखाई देगी।

अब तक बहुत अच्छा है लेकिन अब चरण 7 फिर से चलाने का प्रयास करें।

  1. एक त्रुटि दिखाई देगी जिसमें यह बताएगा कि फ़ोल्डर पहले से मौजूद है।

स्क्रिप्ट को बेहतर बनाने के लिए हम कई चीजें कर सकते हैं। उदाहरण के लिए, यदि फ़ोल्डर पहले से मौजूद है तो हम विशेष रूप से तब तक परवाह नहीं करते जब तक यह अस्तित्व में न हो।

#! / Bin / bash

mkdir -p $ @

सीडी $ @

हैलो स्पर्श करें

यदि आप mkdir कमांड के हिस्से के रूप में -p निर्दिष्ट करते हैं तो फ़ोल्डर में पहले से मौजूद होने पर यह त्रुटि नहीं होगी, लेकिन यदि यह अस्तित्व में नहीं है तो यह इसे बनाएगा।

जैसा होता है, स्पर्श कमांड एक फाइल बनायेगा यदि यह अस्तित्व में नहीं है लेकिन यदि यह अस्तित्व में है तो यह केवल अंतिम पहुंच की तारीख और समय में संशोधन करता है।

कल्पना करें कि टच स्टेटमेंट को इको स्टेटमेंट के साथ प्रतिस्थापित किया गया था जो फ़ाइल को पाठ को निम्नानुसार लिखता है:

#! / Bin / bash

mkdir -p $ @

सीडी $ @

गूंज "हैलो" >> हैलो

यदि आप बार-बार "./createhellodirectory.sh परीक्षण" आदेश चलाते हैं तो प्रभाव यह होगा कि परीक्षण निर्देशिका में "हैलो" नामक फ़ाइल बड़ी और बड़ी हो जाएगी जिसमें "हैलो" शब्द के साथ अधिक से अधिक पंक्तियां होंगी।

अब, यह इरादे के रूप में हो सकता है या नहीं भी हो सकता है लेकिन अब कहना है कि यह वांछित कार्रवाई नहीं है। आप यह सुनिश्चित करने के लिए एक परीक्षण लिख सकते हैं कि निम्नानुसार echo कमांड चलाने से पहले निर्देशिका मौजूद नहीं है।

#! / Bin / bash

mkdir $ @ 2> / dev / null;

अगर [$? -ईक 0]; फिर

सीडी $ @

गूंज "हैलो" >> हैलो

बाहर जाएं

फाई

फ़ोल्डर्स के निर्माण को संभालने के लिए उपर्युक्त स्क्रिप्ट मेरी पसंदीदा विधि है। Mkdir कमांड उस फ़ोल्डर को बनाता है जो इनपुट पैरामीटर के रूप में पारित होता है लेकिन किसी भी त्रुटि आउटपुट को / dev / null (जिसे अनिवार्य रूप से कहीं भी नहीं कहा जाता है) भेजा जाता है।

तीसरी पंक्ति पिछले आदेश की आउटपुट स्थिति की जांच करती है जो "mkdir" कथन है और यदि यह सफल हुआ तो यह "एफआई" कथन तक पहुंचने तक बयान करेगा।

इसका अर्थ यह है कि यदि आप आदेश सफल होते हैं तो आप फ़ोल्डर बना सकते हैं और अपनी इच्छित चीजें निष्पादित कर सकते हैं। अगर आप कुछ और करना चाहते हैं तो आदेश सफल नहीं हुआ है तो आप निम्नानुसार एक और कथन दर्ज कर सकते हैं:

#! / Bin / bash

mkdir $ @ 2> / dev / null;

अगर [$? -ईक 0]; फिर
सीडी $ @
गूंज "हैलो" >> हैलो
बाहर जाएं
अन्य
सीडी $ @
गूंज "हैलो"> हैलो
बाहर जाएं
फाई

उपरोक्त स्क्रिप्ट में यदि mkdir कथन काम करता है तो गूंज कथन "हैलो" नामक फ़ाइल के अंत में "हैलो" शब्द भेजता है, जबकि यदि यह अस्तित्व में नहीं है तो एक नई फ़ाइल "हैलो" नामक शब्द " हैलो "इसमें।

यह उदाहरण विशेष रूप से व्यावहारिक नहीं है क्योंकि आप हमेशा "इको"> हैलो लाइन चलाकर एक ही परिणाम प्राप्त कर सकते हैं। उदाहरण का बिंदु यह दिखाने के लिए है कि आप "mkdir" कमांड चला सकते हैं, त्रुटि आउटपुट को छुपा सकते हैं, यह देखने के लिए कमांड की स्थिति जांचें कि यह सफल है या नहीं और फिर "mkdir" कमांड के आदेशों का एक सेट निष्पादित करें सफल रहा और आदेशों का एक और सेट अगर यह नहीं था।