Terminaldeki klasörlerde nasıl klasör oluşturabilirim


12

musicİçinde tüm sanatçı klasörlerinin bulunduğu bir klasör var. Bu klasörleri oluşturmak için bir yolu var mı: 1. Albums, 2. EP, 3. Singles, 4. Livebir komutla tüm sanatçı klasörlerde?

Yanıtlar:


12

Elbette, bunu sanatçı klasörlerinin bulunduğu müzik klasöründe yürütün:

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

Bunu CLI'nızda yürütebilir veya #!/bin/shilk satır olarak ekleyip bir dosyaya kaydederek bir kabuk komut dosyası yapabilirsiniz. Dosyayı yürütülebilir yapmayı unutmayın.

Yaptığı işe gelince: */geçerli dizindeki tüm dizinler ( ) üzerinden yinelenir , daha sonra bu dizinlerin her biri için istenen alt klasör (ikinci for) üzerinden yinelenir ve sonra istenen (göreceli) alt klasör yapılır.


1
Oh güzel, bu tarihe geçecek ;-)
Steve

18

Bunun için {curly} parantezinizi koymak isteyebilirsiniz

Bu argüman uğruna ./music yokmuş gibi davranacağız

./Music için temel dizininizde, gerekli yerlerde alt dizinler oluşturmak için -p komutunu kullanacağız ve süslü parantezler küçük bir dizi oluşturmak için kullanılacak

Komut -pebeveyn için kısadır, hatırlamak daha kolaysa --parentbunun yerine kullanabileceğinizi

mkdir -p ./music/{"1. Albums","2. EP","3. Singles","4. Live"}

Bununla oynamak isterseniz, örneğin

mkdir -p ./folder/prefix{a{1/only,2,3},b,c}suffix/more{z,y,x}

İfadeleri iç içe yerleştirdiniz, kaşlı ayraçları bir dizenin ortasına yerleştirebilirsiniz ve ayrıca alt dizinin de uymasını sağlayabilir ve belirli bir dizi için alt dizinlerinizle ilgili olabilirsiniz

Bu tür komutlarla kendi şablonlarınızı oluşturabileceğiniz bir yerde dosya oluşturmanızı ve onlara açıklama vermenizi öneririm

Daha fazla bilgi için bu sayfayı ziyaret edin https://www.linuxjournal.com/content/bash-brace-expansion ve https://www.linux.com/tutorials/all-about-curly-braces-bash/


5
Şahsen bu cevabı daha çok seviyorum, çünkü bir programcı olarak düşünmenize gerek yok. Kıvırcık parantez yöntemini nadiren kullanıyorum, ancak çok daha zarif.
jawtheshark

6
OP her subdir nun içine yerleştirilmiş 4 Subdir istediği musicdoğru arg kadar, mkdirolur./music/*/{"1. Albums","2. EP","3. Singles","4. Live"}
joH1

1
FYI, -pkısa şeklidir --parent.
Amedee Van Gasse
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.