¿Cómo creo directorios con números de índice?

¿Cómo creo directorios con números de índice?

Quiero crear directorios hal-01en hal-30Linux. ¿Existe un único comando que pueda hacer esto?

Respuesta1

Puede usar el siguiente comando: mkdir hal-{01..30}(al menos si usa un shell que admita esta forma de expansiones de cadenas (bash lo hace)).

Para explicar lo que hace:

$ echo {01..30}
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Como puede ver, {01..30}se expandió a varios argumentos. Esto funciona si las llaves también aparecen dentro de una cadena:

$ echo hal-{01..30}
hal-01 hal-02 hal-03 hal-04 hal-05 hal-06 hal-07 hal-08 hal-09 hal-10 hal-11 hal-12 hal-13 hal-14 hal-15 hal-16 hal-17 hal-18 hal-19 hal-20 hal-21 hal-22 hal-23 hal-24 hal-25 hal-26 hal-27 hal-28 hal-29 hal-30

Ahora mkdir acepta varios argumentos y creará un directorio para cada uno. Por lo tanto, obtendrás lo que pediste si usas mkdiren lugar de echo.

Respuesta2

Utilice expansión de llaves, como esta: mkdir hal-{01..30}

Respuesta3

mkdir ~/example/folder{1..30} si quieres 30

Respuesta4

También puedes usar seq(1)para esto, por ejemplo:

mkdir $(seq --format="~/example/folder/HAL-%02.0f" 1 30)

Puede hacer otras cosas, como diferentes pasos, etc. Por alguna razón inescrutable, se calcula con flotantes (!?), el printf(3)formato similar debe ajustarse en consecuencia. Esto funciona incluso con shells simples que no hacen expansiones extravagantes.

información relacionada