com zsh
:
autoload zmv
zmv 'file_(<->)' 'S_$((1 + ($1 - 1) / 100))'
Se os arquivos não estiverem numerados, mas você quiser apenas dividir essa lista:
n=0; zmv -Q 'file_*(n)' 'S_$((n++/100+1))'
(n)
é alternar a ordem numérica para a lista (e você precisa de -Q
para esse qualificador de globbing).
Aqueles chamam um mv
por arquivo. Você pode torná-lo um pouco mais eficiente fazendo mv
builtin ( zmodload zsh/files
), ou você poderia fazer:
files=(file_*(nN))
for ((n=1; $#files; n++)) {
mv -- $files[1,100] S_$n
files[1,100]=()
}
Os (nN)
acima são zsh
qualificadores que qualificam ainda mais o glob. n
é para a classificação numérica , N
é para ativar a opção nullglob
para esse glob, ou seja, para o glob expandir para uma lista vazia quando não há correspondência.
(com esse, você poderia até jogar um mkdir S_$n
caso esses diretórios não existissem de antemão).