Menggunakan kurung kurawal (kurung kurawal) untuk membuat struktur folder dengan `mkdir -p`

16

Sebagai man mkdirnegara

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

Ketika saya menjalankan perintah ini

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

Ini menciptakan struktur folder seperti ini workorangtua folder kemudian F1, F2, F3folder anak dan temp1dan temp2folder anak di bawah tiga folder induk F1, F2, F3.

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

Sekarang masalahnya adalah bahwa saya ingin membuat temp1, temp2folder hanya di bawah F1tidak di bawah F2dan F3, tapi saya bingung bagaimana saya bisa menulis perintah untuk melakukan apa yang saya inginkan.

mr_eclair
sumber
@ Caleb: maaf, saya tidak sadar bahwa kami berdua sedang mengedit pada saat yang sama, sepertinya penggabungan revisi tidak dilaksanakan oleh SE: - /
Stéphane Gimenez
@Stephane: Jangan khawatir. Saya telah membuat banyak pengeditan dan sangat jarang bahwa dua pengeditan besar musnah seperti itu. Terima kasih telah berkontribusi!
Caleb

Jawaban:

25

Mungkin ini yang Anda cari?

 mkdir -p work/{F1/{temp1,temp2},F2,F3}
Stéphane Gimenez
sumber
Hei, saya bertanya-tanya baru-baru ini apakah hal dapat dilakukan sesederhana itu. Terima kasih!
rozcietrzewiacz
2

Deskripsi yang sangat baik tentang ekspansi brace (dengan contoh) dapat ditemukan di subbagian Brace Expansiondari manual bash ( man bash, tekan /untuk mulai mencari dan mencari Brace Expansion).

rozcietrzewiacz
sumber
Terima kasih, jawaban Anda membimbing saya ke panduan hebat ini! Hanya perlu tahu bahwa itu disebut "Brace Expansion" jadi saya tahu apa yang harus google. linuxcommand.org/lc3_lts0080.php Kutipan: "Mungkin ekspansi teraneh disebut ekspansi brace. Dengan itu, Anda dapat membuat beberapa string teks dari pola yang mengandung kawat gigi. Berikut ini contohnya: [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}

Ini pertama kali membuat workdan tiga subdirektori sebelum membuat direktori level bawah work/F1. Mudah dibaca dan dimengerti.

Atau, jika Anda benar-benar perlu menggabungkan semuanya menjadi ekspresi monster tunggal (sama sekali tidak perlu melakukannya karena sulit untuk dibaca dan dipelihara):

mkdir -p work/F{1/temp{1,2},2,3}
Kusalananda
sumber