O comando rename é usado para renomear múltiplos arquivos de acordo com as regras que você criar. É desejável conhecer o básico de expressões regulares para dominar o comando.
Vou pegar como exemplo um diretório contendo arquivos *zip com nomes bem cabulosos:
cd meu-diretorio
$ ls *zip Double Dragon (1989) (Activision) (PAL) [!].zip
Kung Fu Master (1984) (Activision).zip
Mario Bros. (1983) (Atari).zip
Nightmare (1983) (Sancho).zip
Volleyball (1983) (Starsoft) (PAL) [!].zip
Quero traduzir todas as letras maiúsculas em minúsculas:
rename 'y/A-Z/a-z/' *zip ls *zip double dragon (1989) (activision) (pal) [!].zip
kung fu master (1984) (activision).zip
mario bros. (1983) (atari).zip
nightmare (1983) (sancho).zip
volleyball (1983) (starsoft) (pal) [!].zip
Agora quero substituir todos os espaços em branco por "_":
É possível criar um alias para corrigir nomes de arquivos. Adicione a seguinte linhas ao arquivo ~/.bashrc:
alias renomear="rename 'y/A-Z/a-z/ ; s/ /_/g ; s/[^a-z0-9\.\_]//g'"
Recarregue as configurações do bashrc (source ~/.bashrc) ou reinicie a sessão de usuário, em seguida você pode consertar o nome de seus arquivos digitando: