MODIFICADO: Depois que você nos informou que está lidando com ~ 300 arquivos, as respostas precisam ser modificadas. Na resposta editada abaixo, substitua o número 300 pelo número exato de limite superior dos arquivos pré-existentes.
for file in mmm.{300..1} ; do mv "${file}" "${file%.*}.$((30+${file#*.}))" ; done
Esta resposta é muito eficiente, pois faz tudo dentro de bash
usando bash
de habilidades nativas e não precisa de programas externos ou lançamento de subprocessos.
-
${file%.*}
retorna o prefixo do nome do arquivo antes do período. -
'$ ((..)) é o idioma da operação matemática do bash.
-
${file#*.}
retorna o sufixo do nome do arquivo após o período. Se você estiver preocupado com a possibilidade de ter nomes de arquivos com mais de um período incorporado, substitua o#
por##
.
Veja man bash
para mais detalhes e muitos outros recursos nativos muito interessantes.