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.