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.