बैश स्क्रिप्ट का उपयोग करके 100 उपनिर्देशिका कैसे बनाएं?


14

मैं बैश स्क्रिप्ट का उपयोग करके कुछ निर्देशिकाओं में 100 अलग-अलग उपनिर्देशिकाएं बनाने की कोशिश कर रहा हूं।

मैं एक बुनियादी forलूप (जो है for f in $FILES;do mkdir f done) के साथ शुरू करता हूं , लेकिन यह काम नहीं करता है।

मैं जो करना चाहता हूं, उस पर स्पष्ट होना: मैं वर्तमान निर्देशिकाओं (यहां मैं उपयोग करता हूं home='pwd') में 100 विभिन्न उपनिर्देशिकाएं प्राप्त करने का प्रयास करता हूं । उदाहरण के लिए, निर्देशिका में /home/paul/main_directory/।

और यहाँ मैं 1 से 100 तक के इंडेक्स के साथ 100 डायरेक्टरी बनाना चाहूँगा, जैसे:

subdirectory_1
subdirectory_2
subdirectory_3
subdirectory_4
.
.
.
subdirectory_100

जवाबों:


19

अपने सुझाए गए forलूप का उपयोग करके अपने प्रश्न का उत्तर देने के लिए - स्टीलड्राइवर द्वारा उल्लिखित ब्रेस अभिव्यक्ति भी काम करती है:

for i in {1..100}; do mkdir subdirectory_$i; done

आपके अद्यतन प्रश्न का उत्तर देने के लिए:

दोनों - स्टीलड्राइवर और मेरे द्वारा एक के जवाब दोनों एक-लाइनर होने के लिए हैं।

यदि आप इसे बश स्क्रिप्ट में उपयोग करना चाहते हैं, तो आप शायद इसे इस तरह लिखेंगे:

#!/bin/bash
for i in {1..100}
do
    mkdir subdirectory_$i
done

क्षमा करें, मैं आपके उत्तर को संपादित नहीं करना चाहता, मैं सिर्फ यह टिप्पणी करना चाहता हूं ... ouch ...
— पावोल नमर

बहुत बहुत धन्यवाद, आपके बहुत जल्दी जवाब के लिए, अब मुझे मिल गया है। बहुत बार धन्यवाद, इसने मुझे बहुत समय तक सुरक्षित रखा :)
— पावोल नमेर

1
उन मामलों के लिए एक विकल्प जहां आपके पास पूर्ण BASH नहीं है, लेकिन सिर्फ एक / बिन / श, आप seqइसके बजाय उपयोग कर सकते हैं : for i in $(seq 1 100); do mkdir dir_$i; done
— डैनियल लेवेलिन

एक निर्देशिका '{1..3}' बनाता है, जब उसी 3 बार करने की कोशिश की जाती है। कोई भी सुराग क्या गलत हो सकता है?
— स्मरफक

40

सबसे आसान तरीका शायद ब्रेस विस्तार का उपयोग करना है

mkdir subdirectory_{1..100}

8

स्टीलड्राइवर द्वारा दिए गए वास्तव में प्रभावशाली जवाब में कुछ जोड़ने के लिए:

आप निर्देशिका बना सकते हैं जो शून्य के साथ पैडिंग करके "ठीक से" छाँटते हैं।

mkdir subdirectory_{001..100}

(यदि आपको यह उत्तर पसंद है, तो कृपया स्टीलड्राइवर के उत्तर को बढ़ाएं। मैं अभी तक कोई टिप्पणी नहीं कर सकता, या ऐसा नहीं कर सकता।)


एक उप-निर्देशिका बनाता है जिसे 'उपनिर्देशिका_ {001..100}' कहा जाता है। क्या गलत हो सकता है के रूप में कोई सुराग।
— .३

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