`Mkdir -p` ile klasör yapısı oluşturmak için süslü parantez (parantez) kullanma


16

gibi man mkdirdevletler

   -p, --parents
          no error if existing, make parent directories as needed

Bu komutu çalıştırdığımda

mkdir -p work/{F1,F2,F3}/{temp1,temp2}

Böyle bir klasör yapısını oluşturur workklasör daha sonra ebeveyn F1, F2, F3çocuk klasörler ve temp1ve temp2üç ana klasör altındaki alt klasörler F1, F2, F3.

   work
     -F1
       -temp1
       -temp2
     -F2
       -temp1
       -temp2
     -F3
       -temp1
       -temp2

Şimdi sorun oluşturmak istiyorum temp1, temp2sadece altında F1değil altında klasörler F2ve F3, ama ben ne istediğimi yapmak için bir komut nasıl yazabilirim karıştı.


@Caleb: Üzgünüm, ikimiz de aynı anda düzenleme yaptığımızın farkında değildim, revizyon birleştirmenin SE tarafından uygulanmadığı anlaşılıyor: - /
Stéphane Gimenez

@Stephane: Endişelenme. Çok sayıda düzenleme yaptım ve iki büyük düzenlemenin bu kadar zorlayıcı olması oldukça nadirdir. Katkınız için teşekkürler!
Caleb

Yanıtlar:


25

Belki de aradığınız şey budur?

 mkdir -p work/{F1/{temp1,temp2},F2,F3}

Son zamanlarda işlerin bu kadar basit yapıp yapamayacağını merak ediyordum. Teşekkürler!
rozcietrzewiacz

2

Brace genişlemesinin çok iyi bir açıklaması (örneklerle), Brace Expansionbash kılavuzunun alt bölümünde bulunabilir ( man bash, /aramayı başlatmak ve aramak için basın Brace Expansion).


Teşekkür ederim, cevabınız beni bu harika rehbere götürdü! Sadece "Brace Expansion" olarak adlandırılması gerektiğini bilmek gerekiyordu, bu yüzden google ne biliyordu. linuxcommand.org/lc3_lts0080.php Alıntı: "Belki de en garip genişleme küme ayracı genişletme denir. Bununla birlikte, parantez içeren bir desenden birden fazla metin dizesi oluşturabilirsiniz. İşte bir örnek: [me@linuxbox me]$ echo Front-{A,B,C}-Back Front-A-Back Front-B-Back Front-C-Back"
Rock Lee

0
mkdir -p work/F{1..3} work/F1/temp{1,2}

Bu önce workve alt alt dizinleri oluşturmadan önce üç alt dizin oluşturur work/F1. Okuması ve anlaması kolaydır.

Ya da, her şeyi kesinlikle tek bir canavar ifadesinde birleştirmeniz gerekiyorsa (okumak ve korumak zor olduğu için kesinlikle buna gerek yoktur):

mkdir -p work/F{1/temp{1,2},2,3}
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.