mkdir का "-p" विकल्प


96

इसलिए यह मेरे लिए बहुत जटिल प्रश्न जैसा नहीं लगता है, लेकिन यह एक ऐसा है जिसका जवाब मुझे नहीं मिल रहा है। मैं असमंजस में हूँ कि -pविकल्प यूनिक्स में क्या करता है। मैंने एक उपनिर्देशिका और फिर उस एक के भीतर एक अन्य उपनिर्देशिका बनाते हुए एक लैब असाइनमेंट के लिए इसका इस्तेमाल किया। ऐसा लग रहा था:

mkdir -p cmps012m/lab1

यह सामान्य अधिकारों ( rlidwka) के साथ एक निजी निर्देशिका में है । ओह, और किसी को क्या rlidwkaमतलब है की एक छोटी सी व्याख्या दे मन होगा ? मैं यूनिक्स के लिए कुल नॉब नहीं हूं, लेकिन मैं वास्तव में इसका मतलब नहीं जानता हूं। उम्मीद है कि यह भी एक सवाल का अस्पष्ट नहीं है।


2
man mkdirआपके सवाल का जवाब देंगे। के रूप में "rlidwka" के लिए, मुझे कोई पता नहीं है; आपको हमें कुछ और संदर्भ देने की आवश्यकता होगी।
कीथ थॉम्पसन

जवाबों:


138

मैन पेज उन सूचनाओं का सबसे अच्छा स्रोत है जिन्हें आप पा सकते हैं ... और आपकी उंगलियों पर है: स्विच के man mkdirबारे में यह पैदावार -p:

-p, --parents
    no error if existing, make parent directories as needed

उदाहरण का उपयोग करें: मान लें कि मैं निर्देशिका बनाना चाहता हूं hello/goodbyeलेकिन कोई भी मौजूद नहीं है:

$mkdir hello/goodbye
mkdir:cannot create directory 'hello/goodbye': No such file or directory
$mkdir -p hello/goodbye
$

-pदोनों बनाया, helloऔरgoodbye

इसका मतलब है कि कमांड आपके अनुरोध को पूरा करने के लिए सभी निर्देशिका आवश्यकताएं बनाएगा, ताकि निर्देशिका में मौजूद किसी भी त्रुटि को वापस न किया जा सके

के बारे में rlidwka, Google के पास एक बहुत अच्छी स्मृति है :)। मेरी खोज ने इसे उदाहरण के लिए लौटाया: http://www.cs.cmu.edu/~help/afs/afs_acls.html

 Directory permissions

l (lookup)
    Allows one to list the contents of a directory. It does not allow the reading of files. 
i (insert)
    Allows one to create new files in a directory or copy new files to a directory. 
d (delete)
    Allows one to remove files and sub-directories from a directory. 
a (administer)
    Allows one to change a directory's ACL. The owner of a directory can always change the ACL of a directory that s/he owns, along with the ACLs of any subdirectories in that directory. 

File permissions

r (read)
    Allows one to read the contents of file in the directory. 
w (write)
    Allows one to modify the contents of files in a directory and use chmod on them. 
k (lock)
    Allows programs to lock files in a directory. 

इसलिए rlidwkaइसका अर्थ है: सभी अनुमतियाँ

यह ध्यान देने योग्य बात है, जैसा कि @KeithThompson ने टिप्पणियों में बताया है, कि सभी यूनिक्स सिस्टम ACL का समर्थन नहीं करते हैं। तो शायद rlidwkaअवधारणा यहाँ लागू नहीं होती है।


1
लेकिन सभी यूनिक्स जैसे सिस्टम एसीएल का समर्थन नहीं करते हैं, इसलिए rlidwkaयह सार्थक हो भी सकता है और नहीं भी।
कीथ थॉम्पसन

1
@KeithThompson वैसे मैं सहमत हूं, मैं सिर्फ इस बात का उल्लेख करना चाहता हूं कि संक्षिप्त नाम क्या है।
पाउलो बू

1
हां, लेकिन अक्सर किसी के सवाल का जवाब देने से कम मददगार होती है, ताकि जवाब समझने के लिए जरूरी पृष्ठभूमि की जानकारी दी जा सके।
कीथ थॉम्पसन

1
मैं इसका उत्तर दूंगा। मुझे अभी इसकी जानकारी नहीं थी। मुझे सही करने के लिए धन्यवाद।
पाउलो बू

4
यह उत्तर "आरटीएफएम, मुझे Google आपके लिए है" और मुझे यह पसंद है, कहने का सबसे अधिक संभव तरीका है। मैं एक बार एक नोबी इंटर्न था जो कुछ भी नहीं जानता था, और यह भूल गया कि मेरे प्रबंधक से पूछने से पहले मुझे बस इसे Google करना चाहिए। इन नए लोगों पर आसान जाओ; कभी-कभी यह पता लगाना कठिन होता है कि Google क्या है। आप नहीं जानते कि आप क्या नहीं जानते हैं। लेकिन हर कोई इसे करने के वर्षों के बाद googling में अधिक निपुण हो जाता है।
डेगरूम

4

-p|--parentउपयोग किया जाएगा यदि आप top-downदृष्टिकोण के साथ एक निर्देशिका बनाने की कोशिश कर रहे हैं । कि माता पिता की निर्देशिका तो बच्चे और इतने पर iff कोई भी मौजूद नहीं है।

-p, - कोई त्रुटि नहीं यदि मौजूदा है, तो माता-पिता की निर्देशिकाओं को आवश्यकतानुसार बनाएं

इसके बारे में rlidwkaइसका अर्थ है पूर्ण या प्रशासनिक पहुँच देना। इसे यहाँ पाया गया https://itservices.stanford.edu/service/afs/intro/permissions/unix


3

mkdir [-switch] foldername

-p एक स्विच है जो वैकल्पिक है, यह सबफ़ोल्डर और पैरेंट फ़ोल्डर बनाएगा और साथ ही पेरेंट फ़ोल्डर मौजूद नहीं है।

आदमी पृष्ठ से:

-p, --parents no error if existing, make parent directories as needed

उदाहरण:

mkdir -p storage/framework/{sessions,views,cache}

इससे सबफ़ोल्डर सत्र, दृश्य, कैश फ़ॉर्वर्ड फ़ोल्डर के अंदर 'फ्रेमवर्क' की परवाह किए बिना बनाया जाएगा या पहले उपलब्ध था।


2

ध्यान दें कि विशेष रूप -pसे mkdirकमांड का एक तर्क है , पूरे यूनिक्स का नहीं। हर कमांड में इसके लिए जो भी तर्क हो सकते हैं।

इस मामले में इसका अर्थ है "माता-पिता", अर्थ mkdirएक निर्देशिका और किसी भी माता-पिता का निर्माण करेगा जो पहले से मौजूद नहीं है।


2

पथ: बहुत पहले उत्तर दिया गया था, हालांकि, शायद "पथ" (याद करने में आसान) के रूप में -p के बारे में सोचना अधिक उपयोगी है, क्योंकि इससे mkdir पथ के हर हिस्से को बनाने का प्रयास करता है जो पहले से ही नहीं है।

mkdir -p / usr / bin / comm / diff / er / बाड़

अगर / usr / bin / comm पहले से मौजूद है, तो यह कार्य करता है: mkdir / usr / bin / comm / diff mkdir / usr / bin / comm / diff / er mkdir / usr / bin / comm / diff / er / बाड़

जैसा कि आप देख सकते हैं, यह आपको थोड़ा टाइप करने और सोचने के लिए बचाता है, क्योंकि आपको यह पता लगाने की ज़रूरत नहीं है कि पहले से क्या है और क्या नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.