Use o utilitário rename
para fazer isso:
rename -n '$_ = sprintf "file%d.txt", ++$::count' *
Notas
-
-n
faz o comando mostrar o que acontecerá se você executá-lo. Se a saída foi o que você deseja, execute-o sem-n
para realmente renomear os arquivos. - substitua o
*
pelo nome que deseja renomear, por exemplo:dog*.txt
para renomear apenasdog1.txt
,dog2.txt
... parafile1.txt
,file2.txt
, etc. -
$_
é uma entrada padrão (nomes de arquivos) que devemos modificar. - usando
=
estamos modificando - com
sprintf
estamos definindo um esquema iniciado porfile
seguido por%d
significa um número e terminou com.txt
. - o número (% d) será atribuído usando
++$::count
, que é um contador simples iterado após cada renomeação.
A ideia vem de aqui .