mkdir $(seq --format 's%.0f' 1 50)
ou se você quiser números zero-padded (o que seria melhor para classificar):
mkdir $(seq --format 's%02.0f' 1 50)
ou:
mkdir s$(seq -s ' s' -w 1 50)
- observe a string 's' logo antes do $()
, sem ela o primeiro diretório criado será apenas '01' em vez de 's01'
e, finalmente: mkdir $(printf "s%02i " $(seq 1 50))
seq
é do GNU Coreutils
Curiosamente, a opção --format
ou -f
do seq permite apenas os tipos double de ponto flutuante do printf (como f e g também um formato hexadecimal de ponto flutuante estranho para o qual eu nunca encontrei nenhum uso). Eu não tenho ideia do porquê. Seria bom se também suportasse outros tipos numéricos printf(3)
como inteiro (d, i), octal (o, U) ou hex (x, X).
De qualquer forma, um formato duplo com precisão decimal de 0, como %.0f
ou %02.0f
, é próximo o suficiente de um inteiro para essa finalidade.
$ seq --help
Usage: seq [OPTION]... LAST
or: seq [OPTION]... FIRST LAST
or: seq [OPTION]... FIRST INCREMENT LAST
Print numbers from FIRST to LAST, in steps of INCREMENT.
-f, --format=FORMAT use printf style floating-point FORMAT
-s, --separator=STRING use STRING to separate numbers (default: \n)
-w, --equal-width equalize width by padding with leading zeroes
--help display this help and exit
--version output version information and exit
If FIRST or INCREMENT is omitted, it defaults to 1. That is, an
omitted INCREMENT defaults to 1 even when LAST is smaller than FIRST.
FIRST, INCREMENT, and LAST are interpreted as floating point values.
INCREMENT is usually positive if FIRST is smaller than LAST, and
INCREMENT is usually negative if FIRST is greater than LAST.
FORMAT must be suitable for printing one argument of type 'double';
it defaults to %.PRECf if FIRST, INCREMENT, and LAST are all fixed point
decimal numbers with maximum precision PREC, and to %g otherwise.
Veja também: link