जवाबों:
निश्चित रूप से, इसे उस संगीत फ़ोल्डर में निष्पादित करें जहां कलाकार फ़ोल्डर हैं:
for artist in */; do
for folder in "1. Albums" "2. EP" "3. Singles" "4. Live"; do
mkdir "$artist/$folder"
done
done
आप इसे अपने सीएलआई पर निष्पादित कर सकते हैं, या आप इसे #!/bin/sh
पहली पंक्ति के रूप में जोड़कर और इसे एक फ़ाइल में सहेजकर एक शेल स्क्रिप्ट बना सकते हैं । फ़ाइल को निष्पादन योग्य बनाना न भूलें।
जैसा कि यह करता है: यह */
वर्तमान निर्देशिका के भीतर सभी निर्देशिकाओं ( ) पर प्रसारित होता है , फिर इन निर्देशिकाओं में से प्रत्येक के लिए, वांछित सबफ़ोल्डर (दूसरा for
) पर पुनरावृत्त करता है, और फिर वांछित (सापेक्ष) सबफ़ोल्डर बनाता है।
आप इस के लिए अपने {कर्ली} ब्रेसिज़ को लगाना चाह सकते हैं
इस तर्क के लिए हम ढोंग करेंगे ।/music मौजूद नहीं है
./Music के लिए आपकी बेस डायरेक्टरी में हम -p कमांड का उपयोग उप-निर्देशिका बनाने के लिए करेंगे जहां जरूरत है और घुंघराले ब्रेस का उपयोग एक छोटी सी सरणी बनाने के लिए किया जाएगा
-p
अभिभावक के लिए यह आदेश छोटा है, यदि यह याद रखना आसान है कि आप --parent
इसके बजाय उपयोग कर सकते हैं
mkdir -p ./music/{"1. Albums","2. EP","3. Singles","4. Live"}
यदि आप उदाहरण के लिए, आप इसके साथ खेलना चाहते हैं
mkdir -p ./folder/prefix{a{1/only,2,3},b,c}suffix/more{z,y,x}
आपके पास नेस्टेड अभिव्यक्तियाँ हैं, आप एक स्ट्रिंग के बीच में ब्रेसिज़ सम्मिलित कर सकते हैं और आप उपनिर्देशिका को सूट का पालन करने की अनुमति भी दे सकते हैं, और आप किसी विशेष सरणी के लिए अपनी उप निर्देशिकाओं के साथ विशिष्ट हो सकते हैं
मेरा सुझाव है कि आप कहीं पर एक फ़ाइल बनाएँ जहाँ आप इस तरह के आदेशों के साथ अपने खुद के टेम्पलेट बना सकते हैं और उन्हें विवरण दे सकते हैं
अधिक जानकारी के लिए इस पेज पर जाएँ https://www.linuxjournal.com/content/bash-brace-expansion और https://www.linux.com/tutorials/all-about-curly-braces-bash/
music
, इसलिए सही होने के लिए सही mkdir
./music/*/{"1. Albums","2. EP","3. Singles","4. Live"}
-p
का संक्षिप्त रूप है --parent
।