Bash betiği kullanarak 100 alt dizin nasıl oluşturulur?


14

Bir Bash komut dosyası kullanarak belirli dizinlerde 100 farklı alt dizinler oluşturmaya çalışıyorum.

Temel bir fordöngü (yani for f in $FILES;do mkdir f done) ile başlıyorum , ama çalışmıyor.

Ne yapmak istediğimi netleştirmek için: Geçerli dizinlerde (burada kullanıyorum home='pwd') 100 farklı alt dizinler elde etmeye çalışıyorum . Örneğin, dizinde /home/paul/main_directory/.

Ve burada 1'den 100'e kadar dizin ile 100 dizin oluşturmak istiyorum, şöyle:

subdirectory_1
subdirectory_2
subdirectory_3
subdirectory_4
.
.
.
subdirectory_100

Yanıtlar:


19

Sorunuzu önerilen fordöngüyü kullanarak cevaplamak için - steeldriver tarafından belirtilen küme ayracı ifadesi de çalışır:

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

Güncellenmiş sorunuza cevap vermek için:

Her ikisi de - steeldriver'ın cevabı ve benim tarafımdan gelen cevapların her ikisi de tek gömlekli olmak içindir.

Bunu bir Bash betiğinde kullanmak isterseniz, büyük olasılıkla şöyle yazarsınız:

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

üzgünüm Cevabınızı düzenlemek istemiyorum, sadece yorum yapmak istiyorum ... ah ...
Pavol Namer

Çok hızlı cevabınız için çok teşekkür ederim, şimdi aldım. Birçok kez teşekkür ederim, bu beni çok güvende
tutuyor

1
tam bir BASH'a sahip olmadığınız, ancak sadece bir / bin / sh olmadığı durumlar için bir alternatif kullanabilirsiniz seq:for i in $(seq 1 100); do mkdir dir_$i; done
Daniel Llewellyn

Aynı 3 kez yapmayı denediğinizde '{1..3}' dizini oluşturur. Yanlış giden herhangi bir ipucu var mı?
soufrk

40

En kolay yol muhtemelen küme ayracı genişletmeyi kullanmaktır

mkdir subdirectory_{1..100}

8

Steeldriver tarafından verilen gerçekten etkileyici cevaba biraz şey eklemek için:

Sıfır ile dolgu yaparak "düzgün" olarak sıralanan dizinler oluşturabilirsiniz.

mkdir subdirectory_{001..100}

(Bu yanıtı beğendiyseniz, lütfen steeldriver'ın cevabını onaylayın. Henüz yorum yapamam veya yapardım.)


'Subdirectory_ {001..100}' adlı bir alt dizin oluşturur. Neyin yanlış gittiğine dair ipuçları.
soufrk

Fikrim yok. Burada benim için iyi çalışıyor. Bash kullanıyor musunuz?
MDeBusk
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.