Você está na página 1de 2

Renomear vrios arquivos no Linux

Diante de um ocasio em que eu tinha que modificar os nomes de vrios arquivos ao mesmo tempo.
Procurei saber como faria isso automaticamente (eram muitos arquivos).
Achei vrios scripts feitos por pessoas muito inteligentes(ou que sabiam copiar de alguem, mas isso
no problema meu) na internet.
Testei vrios e vou colocar aqui as vrias formas de fazer isso.
1. Mudar somente a extenso dos arquivos.
H um comando bem simples no linux para modificar somente as extenses dos arquivos
rename .extensaoatual .extensaoquevocequer *.extensaoatual
Como voc j deve ter entendido o campo 'extensaoatual' a extenso que est nos seus arquivos, a
que voc quer mudar.
Exemplos:
Se vc tem vrias fotos com a extenso .JPG, mas quer que as letras fiquem minusculas. Voc deve
digitar na console
# rename .JPG .jpg *.JPG
Isso far com que todos os arquivos .JPG do diretorio atual (a pasta em que vc est no momento),
fiquem com a extenso .jpg.
rename .GIF .gif *.gif

Isso far com que todos os arquivos .GIF do diretorio atual (a pasta em que vc est no momento),
fiquem com a extenso .gif.
E assim sucessivamente.
Dica de lugar que explica muito bem isso em Piter Punk's.
Como o que eu queria era renomear o 'nome' mesmo do arquivo e deixar a mesma extenso e no
consegui descobrir como fazia isso com esse comando [:'(] , continuei procurando e achei outros
dois scripts muito legais mesmo!
2. Script que substitui uma parte do nome de um arquivo por outra definida por voc.
Dica pegue nesse site.
#!/bin/bash
criterio=$1
antigo=$2
novo=$3
if [ $# -lt 3 ] ; then
echo "modo de usar: renomeia [criterio] [texto_a_ser_substituido]
[texto_substituto]"
exit 0
fi
for arq in *$criterio*
do
mv "$arq" "$(echo $arq | sed "s/$antigo/$novo/")"
done

E como que faz pra usar um script? Assim;


a. Abra um editor de texto;

b. Copie e cole essas linhas acima no arquivo em branco e salve o arquivo com um nome sugestivo,
tipo 'renomear'.
c. Salve o script na pasta onde esto os arquivos a serem renomeados.
d. Estando no diretrio onde esto os arquivos que vc quer renomear, digite na console
./nomedoarquivo, se salvar o arquivo como 'renomear',
digite ./renomear extenso 'padrao no nome do arquivo' 'palavra a ser substituida'.
Exemplo:
Voc tem uma pasta com vrias fotos nomeadas como '-1 viagem-' e quer substituir isso por 'foto',
digite: ./renomear jpg '-1 viagem-' 'foto'
Assim o trecho '-1 viagem-' ser substituido por 'foto' em todos os arquivos.
A explicao do site que serviu de referncia mais completa, incluindo alguns termos mais
tcnicos para quem quiser saber como o script funciona.
3. Renomear os arquivos de forma mais organizada ainda.
Dica peguei de http://www.dicas-l.com.br/dicas-l/20080301.php
#!/bin/bash
#Padrao qualquer coisa que v antes do . (ponto) Ex.: Aniversario_do_Cabecao
echo -e "Padrao: \c"
read PADRAO
#A extensao do arquivo. Digitar jpg aqui pode ser uma boa ideia
echo -e "Extensao: \c"
read EXT
for DIR in $(ls)
do
i=$((i+1))
mv $DIR $PADRAO"_"$i.$EXT
done

O esquema para execuo o mesmo do script anterior: Abrir editor de texto, copiar, colar, salvar.
O que vai mudar um pouco a chamada a ser feita na console.
Eu fiz assim:
a. Salvei como 'renomear2' na pasta onde estavam as fotos.
b. No diretrio atual, digitei ./renomear2 .jpg
c. Daqui em diante, ele pede para vc digitar o padro a ser procurado e a extenso do arquivo.
O que eu percebi foi que o arquivo apagado quando o script executado com sucesso.
Infelizmente, consegui renomear as fotos na primeira vez que tentei e fica muito legal, mas fiz
outras tentativas e no obtive sucesso [:'(]
Vou tentar novamente e atualizarei o post.
Mais uma vez, a dica peguei de http://www.dicas-l.com.br/dicas-l/20080301.php
At mais!

http://ketemartinsrufino.blogspot.com.br/2009/02/renomear-varios-arquivos-no-linux.html

Você também pode gostar