Saya ingin membuat banyak direktori menggunakan mkdir
. Setiap nama direktori akan terdiri dari awalan (string) dan indeks (integer). Misalkan saya ingin awalan menjadi “s” dan indeks berkisar dari 1 hingga 50. Ini berarti saya ingin membuat direktori dengan judul:
s1
, s2
, … , s49
, s50
Apakah ada cara untuk melakukan ini secara otomatis menggunakan mkdir
? Terima kasih atas waktu Anda.
Jawaban yang Diterima:
Anda dapat melakukannya dengan skrip shell.
Pure sh – ini akan berfungsi bahkan pada shell bourne pra-POSIX:
n=1;
max=50;
while [ "$n" -le "$max" ]; do
mkdir "s$n"
n=`expr "$n" + 1`;
done
Jika Anda ingin membuat banyak direktori, Anda dapat membuat skrip lebih cepat dengan menguranginya menjadi satu panggilan mkdir
serta menggunakan shell builtin untuk pengujian dan aritmatika. Seperti ini:
n=1
max=50
set -- # this sets [email protected] [the argv array] to an empty list.
while [ "$n" -le "$max" ]; do
set -- "[email protected]" "s$n" # this adds s$n to the end of [email protected]
n=$(( $n + 1 ));
done
mkdir "[email protected]"
Zsh, ksh93 atau bash membuat ini lebih mudah, tetapi saya harus menunjukkan ini tidak dibangun ke dalam mkdir
dan mungkin tidak bekerja di shell lain. Untuk kasus yang lebih besar, mungkin juga dipengaruhi oleh batasan jumlah atau ukuran total argumen yang dapat diteruskan ke suatu perintah.
mkdir s{1..50}