बैश स्क्रिप्ट का उपयोग करके 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.