Você pode usar o l
sinalizador de expansão de parâmetro para preencher um número à esquerda.
i=0; for x in *; do ((++i)); mv -- $x new/${(l:6::0:)i}; done
Existe uma maneira relativamente simples de fazer isso com apenas recursos POSIX: inicie a numeração em 1000001 (para 6 dígitos) em vez de 1 e retire o primeiro 1
. É menos simples, mas alguns caracteres mais curtos.
i=1000000; for x in *; do i=$((i+1)); mv -- "$x" new/${i#1}; done
Se você quiser aproveitar o zmv
, use uma expressão aritmética que aumente i
no texto de substituição.
i=0; zmv '*' '${(l:6::0:)$((++i))}'
i=1000000; zmv '*' '${$((++i))#1}'
Adicione o o
qualificador se você precisar classificar os arquivos em uma ordem diferente. Com zmv
, você precisa passar o sinal -Q
quando o padrão contiver qualificadores glob.