¿Cómo crear 100 subdirectorios usando un script Bash?

14

Estoy tratando de crear 100 subdirectorios diferentes en ciertos directorios usando un script Bash.

Comienzo con un forbucle básico (es decir for f in $FILES;do mkdir f done), pero no funciona.

Para que quede claro lo que quiero hacer: intento obtener 100 subdirectorios diferentes en los directorios actuales (aquí los uso home='pwd'). Por ejemplo, en el directorio /home/paul/main_directory/.

Y aquí me gustaría crear 100 directorios con índice del 1 al 100, así:

subdirectory_1
subdirectory_2
subdirectory_3
subdirectory_4
.
.
.
subdirectory_100
Pavol Namer
fuente

Respuestas:

19

Para responder a su pregunta utilizando su forbucle sugerido , la expresión de llaves mencionada por steeldriver también funciona:

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

Para responder a su pregunta actualizada:

Ambas: la respuesta de Steeldriver y la de mí están destinadas a ser ingeniosas.

Si desea utilizar esto en una secuencia de comandos Bash, probablemente lo escribiría así:

#!/bin/bash
for i in {1..100}
do
    mkdir subdirectory_$i
done
rkn
fuente
lo siento, no quiero editar tu respuesta, solo quiero comentarla ... ay ...
Pavol Namer
Muchas gracias, por su rápida respuesta, ahora la tengo. Muchas gracias, esto me salva mucho tiempo :)
Pavol Namer
1
una alternativa para los casos en los que no tiene un BASH completo sino solo un / bin / sh, puede usar seqen su lugar: for i in $(seq 1 100); do mkdir dir_$i; done
Daniel Llewellyn el
Crea un directorio '{1..3}', cuando intentas hacer lo mismo 3 veces. ¿Alguna pista de lo que podría haber salido mal?
soufrk
40

La forma más fácil es probablemente usar la expansión de llaves

mkdir subdirectory_{1..100}
conductor de acero
fuente
8

Para agregar algo a la respuesta realmente impresionante dada por steeldriver:

Puede crear directorios que se ordenen "correctamente" rellenando con cero.

mkdir subdirectory_{001..100}

(Si te gusta esta respuesta, vota la respuesta de Steeldriver. Todavía no puedo comentar, o lo habría hecho).

MDeBusk
fuente
Crea un subdirectorio llamado 'subdirectorio_ {001..100}'. Alguna pista sobre lo que podría haber salido mal.
soufrk
Ni idea. Funciona bien para mí aquí. ¿Estás usando bash?
MDeBusk