Pular para o conteúdo

O comando rename na prática

Dica publicada em Linux / Comandos
Fábio Berbert de Paula fabio
Hits: 4.700 Categoria: Linux Subcategoria: Comandos
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

O comando rename na prática

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 "_":

rename 's/ /_/g' *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


E finalmente remover todos os caracteres especiais, mantendo somente as letras, dígitos, "_" e ponto:

rename 's/[^a-z0-9\.\_]//g' *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


É possível combinar todas as regras que você deseja em um único comando, separando as regras por ";":

rename 'y/A-Z/a-z/ ; s/ /_/g ; s/[^a-z0-9\.\_]//g' *zip

Bônus

É 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'"
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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:

renomear Arquivo\ maLuCo.Qualqu3r

Até a próxima!

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Apagando linhas em branco no vim

Estatísticas completas do mercado de browsers

Contador de linhas em consultas SQL

Utilizando Fontes TrueType no Linux

Como instalar o Telegram Desktop no Ubuntu 24.04

Ordenando uma lista de IPs (IPv4) com o sort

Fedora - Coletando informações essencias

Como copiar e colar rapidamente no terminal

Tirando screeshots via linha de comando

Alias com Informações de Hardware do PC/Notebook

#1 Comentário enviado por maurixnovatrento em 28/05/2020 - 21:11h

Legal esse comando. Muito bom.

___________________________________
Conhecimento não se Leva para o Túmulo.

Contribuir com comentário

Entre na sua conta para comentar.