Use o utilitário rename para fazer isso:
rename -n '$_ = sprintf "file%d.txt", ++$::count' *
Notas
-
-nfaz o comando mostrar o que acontecerá se você executá-lo. Se a saída foi o que você deseja, execute-o sem-npara realmente renomear os arquivos. - substitua o
*pelo nome que deseja renomear, por exemplo:dog*.txtpara renomear apenasdog1.txt,dog2.txt... parafile1.txt,file2.txt, etc. -
$_é uma entrada padrão (nomes de arquivos) que devemos modificar. - usando
=estamos modificando - com
sprintfestamos definindo um esquema iniciado porfileseguido por%dsignifica 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 .