मैं टर्मिनल में फ़ोल्डर्स में फ़ोल्डर कैसे बना सकता हूं


12

मेरे पास एक फ़ोल्डर है musicजहाँ नाम है जहाँ सभी कलाकार फ़ोल्डर हैं। इन फ़ोल्डर बनाने के लिए एक रास्ता है: 1. Albums, 2. EP, 3. Singles, 4. Liveएक कमांड के साथ सभी कलाकार फ़ोल्डर में?

जवाबों:


12

निश्चित रूप से, इसे उस संगीत फ़ोल्डर में निष्पादित करें जहां कलाकार फ़ोल्डर हैं:

for artist in */; do
   for folder in "1. Albums" "2. EP" "3. Singles" "4. Live"; do
      mkdir "$artist/$folder"
   done
done

आप इसे अपने सीएलआई पर निष्पादित कर सकते हैं, या आप इसे #!/bin/shपहली पंक्ति के रूप में जोड़कर और इसे एक फ़ाइल में सहेजकर एक शेल स्क्रिप्ट बना सकते हैं । फ़ाइल को निष्पादन योग्य बनाना न भूलें।

जैसा कि यह करता है: यह */वर्तमान निर्देशिका के भीतर सभी निर्देशिकाओं ( ) पर प्रसारित होता है , फिर इन निर्देशिकाओं में से प्रत्येक के लिए, वांछित सबफ़ोल्डर (दूसरा for) पर पुनरावृत्त करता है, और फिर वांछित (सापेक्ष) सबफ़ोल्डर बनाता है।


1
ओह यह सुंदर है, यह इतिहास में नीचे चला जाएगा ;-)
स्टीव

18

आप इस के लिए अपने {कर्ली} ब्रेसिज़ को लगाना चाह सकते हैं

इस तर्क के लिए हम ढोंग करेंगे ।/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/


5
व्यक्तिगत रूप से मुझे यह उत्तर बेहतर लगता है, क्योंकि आपको प्रोग्रामर के रूप में सोचने की आवश्यकता नहीं है। मैं शायद ही कभी कर्ली ब्रेस विधि का उपयोग करता हूं, लेकिन यह बहुत अधिक सुरुचिपूर्ण है।
जवथेशक

6
ओपी चाहता है कि प्रत्येक उपखंड के अंदर रखी गई 4 उपदिरियां music, इसलिए सही होने के लिए सही mkdir./music/*/{"1. Albums","2. EP","3. Singles","4. Live"}
तर्क

1
FYI, -pका संक्षिप्त रूप है --parent
13:01 बजे एमी वैन गेस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.