Bagaimana cara membuat 100 subdirektori menggunakan skrip Bash?

14

Saya mencoba membuat 100 subdirektori berbeda di direktori tertentu menggunakan skrip Bash.

Saya mulai dengan forloop dasar (yaitu, for f in $FILES;do mkdir f done), tetapi tidak berhasil.

Untuk memperjelas apa yang ingin saya lakukan: Saya mencoba untuk mendapatkan 100 subdirektori yang berbeda dalam direktori saat ini (di sini saya gunakan home='pwd'). Misalnya, dalam direktori /home/paul/main_directory/.

Dan di sini saya ingin membuat 100 direktori dengan indeks dari 1 hingga 100, seperti ini:

subdirectory_1
subdirectory_2
subdirectory_3
subdirectory_4
.
.
.
subdirectory_100
Pavol Namer
sumber

Jawaban:

19

Untuk menjawab pertanyaan Anda menggunakan forloop yang disarankan - ekspresi penjepit yang disebutkan oleh steeldriver juga berfungsi:

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

Untuk menjawab pertanyaan Anda yang diperbarui:

Baik - jawaban oleh steeldriver dan yang oleh saya sama-sama dimaksudkan untuk menjadi satu-baris.

Jika Anda ingin menggunakan ini dalam skrip Bash, Anda mungkin akan menulisnya seperti:

#!/bin/bash
for i in {1..100}
do
    mkdir subdirectory_$i
done
rkn
sumber
maaf saya tidak ingin mengedit jawaban Anda, saya hanya ingin berkomentar ... aduh ...
Pavol Namer
Terima kasih banyak, atas jawaban Anda yang sangat cepat, sekarang saya dapat. Terima kasih berkali-kali, ini menyelamatkan saya banyak waktu :)
Pavol Namer
1
alternatif untuk kasus-kasus di mana Anda tidak memiliki BASH penuh tetapi hanya / bin / sh, Anda dapat menggunakannya seqsebagai gantinya: for i in $(seq 1 100); do mkdir dir_$i; done
Daniel Llewellyn
Membuat direktori '{1..3}', ketika dicoba melakukan hal yang sama 3 kali. Ada petunjuk apa yang mungkin salah?
soufrk
40

Cara termudah adalah menggunakan ekspansi brace

mkdir subdirectory_{1..100}
Steeldriver
sumber
8

Untuk menambahkan sesuatu pada jawaban yang benar-benar mengesankan yang diberikan oleh steeldriver:

Anda dapat membuat direktori yang mengurutkan "dengan benar" dengan menambahkan nol.

mkdir subdirectory_{001..100}

(Jika Anda menyukai jawaban ini, harap angkat jawaban steeldriver. Saya belum bisa berkomentar, atau akan melakukannya.)

MDeBusk
sumber
Membuat subdirektori bernama 'subdirectory_ {001..100}'. Petunjuk apa saja yang mungkin salah.
soufrk
Tidak ada ide. Ini bekerja dengan baik untuk saya di sini. Apakah Anda menggunakan bash?
MDeBusk