Renomear vários aquivos ao mesmo tempo
Bom dia amigos !
Como faço para renomear vários arquivos com mesma extensão ?
Exemplo: bode.jpg; cabra.jpg; ovelha.jpg... para animal1.jpg, animal2.jpg, animal3.jpg.....
É possível um passo a passo simples e com a linha de comando ?
Modificar mensagem
Entre ou Registre-se para fazer um comentário.
Comentários
Fique com Deus.
por favor, faça vários testes numa pasta separada com copias de alguns desses arquivos antes de usa-lo nos arquivos principais, para ver se ele te atende, te digo isso porque o comando abaixo irá deixar todos os arquivos jpg sem extensão.
pode retirar essa linha, nao precisa apagar as extensoes, eu que vacilei na logica
for f in *.jpg; do mv ./"$f" "${f%.jpg}"; done
após ficarem sem extensão o script imediatamente entra num loop que renomeia todos os arquivos um por vez a cada volta, renomeando para:
animal + numero da rodada (1,2,3 etc) + extensão (jpg)
se o pc for rapido ou forem poucos arquivos este processo que falei irá durar poucos segundos ou em menos de 1 segundo.
caso tenha medo de eu ter criado um codigo malicioso é só esperar que alguem do forum irá te esclarecer confirmando que eu fiz um codigo do que vc pediu, e vc pode também baixar o shell script do zero, que lá tem muita coisa mastigada e vc já pode ir pegando a manha da programação em shell.
mediafire.com/download/4x4yadaf8s9c7tx/Shell%20Script%20do%20Zero.pdf
a unica coisa que vc deve mudar no script é o diretorio, na 4ª linha vc tira o que está entre aspas e coloca o endereço do diretorio teste.
para usar o script vc deve copiar o codigo abaixo colar num arquivo texto simples, depois dar permissão de execução a ele "chmod +x script", para executa-lo basta entrar no diretorio em que esta o script, clicar com o botao direito e pedir para abrir no terminal e depois usar o "./" para executa-lo assim: "./script", fez isso o script começa a rodar mostrando os numeros de loop na tela, após completar abra a pasta dos arquivos de teste que vc verá eles renomeados.
se roda-lo novamente na mesma pasta com os arquivos já renomeados vai dar pau porque o linux vai tentar renomear animal1.jpg para animal1.jpg
espero ter ajudado, não farei outro script da proxima vez rsrs, é só um incentivo para vc estudar o shell script do zero, sei que tem codigos mais simples para fazer isso, mas eu teria que pesquisar muito e demoraria mais para montar um script, entao fiz do jeito que já sabia.
#!/bin/bash
# coloque o endereço completo dos arquivos na linha abaixo entre aspas
DIRETORIO=$"$HOME/1"
# ele entra no diretorio para renomear
cd $DIRETORIO
# apaga as extensoes jpg
for f in *.jpg; do mv ./"$f" "${f%.jpg}"; done
LINHAS=$"0" # controle do loop
QUANTOS_ARQ=$(ls $DIRETORIO | wc -l) # conta quantos arquivos para o loop
while [ $LINHAS -ne $QUANTOS_ARQ ];do # loop
LINHAS=$[ $LINHAS + 1 ] # adiciona +1 para contar no loop
echo $LINHAS # mostra na tela a rodada atual
# pega o nome do arquivo atual
ARQUIVO=$(ls $DIRETORIO | sed -n ${LINHAS}p)
# renomea o arquivo atual
mv $DIRETORIO/$ARQUIVO $DIRETORIO/animal$LINHAS.jpg
done # fecha o loop
sudo apt-get install thunar -y
Depois basta selecionar todos os arquivos que deseja renomear (se quiser selecionar só alguns, mantenha pressionada a tecla Ctrl enquanto você vai clicando com o botão esquerdo sobre as pastas e os arquivos que deseja renomear), daí clique com o botão direito sobre qualquer um deles e, no menu que surgir, selecione a opção Renomear... e escolha o método de renomeação que preferir. Há várias opções e todas elas dão um banho de simplicidade, em relação ao terminal do shell (eu às vezes recorro ao poderoso terminal do shell Linux, mas este é o tipo de situação em que acho bem mais prático usar a interface gráfica).