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

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

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}

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.)


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.