A questão é se os novos nomes são arbitrários e não relacionados, ou se todos eles têm o mesmo texto substituído.
Para este último, várias ferramentas de renomeação podem substituir dog
por puppy
facilmente:
rename dog puppy dog1 dog2
perl-rename s/dog/puppy/ dog1 dog2
mmv "dog*" "puppy#1"
for file in dog1 dog2; do mv "$file" "${file/dog/puppy}"; done
(Em todos os casos, dog1 dog2
pode ser reduzido para dog[1-2]
ou dog?
ou dog*
.)