Me gustaría crear muchos directorios usando mkdir
. Cada nombre de directorio constará de un prefijo (una cadena) y un índice (un número entero). Supongamos que me gustaría que el prefijo fuera "s" y que los índices fueran del 1 al 50. Esto significa que me gustaría crear directorios titulados:
s1
, s2
, … , s49
, s50
¿Hay alguna manera de hacer esto automáticamente usando mkdir
? ? Gracias por tu tiempo.
Respuesta aceptada:
Puede hacer esto con un script de shell.
Puro sh:esto funcionará incluso en shells Bourne anteriores a POSIX:
n=1;
max=50;
while [ "$n" -le "$max" ]; do
mkdir "s$n"
n=`expr "$n" + 1`;
done
Si desea crear una gran cantidad de directorios, puede hacer que el script sea más rápido reduciéndolo a una sola llamada de mkdir
así como el uso de componentes de shell para pruebas y aritmética. Así:
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 o bash lo hacen mucho más fácil, pero debo señalar que esto no está integrado en mkdir
y puede que no funcione en otros shells. Para casos más grandes, también puede verse afectado por los límites en el número o el tamaño total de los argumentos que se pueden pasar a un comando.
mkdir s{1..50}