Renomeando extensões de centenas de arquivos de uma só vez
Dica publicada em Shell Script / Miscelânea
Renomeando extensões de centenas de arquivos de uma só vez
Aí galera do Viva o Linux.
Dias atrás me deparei com uma situação que até então não tinha me ocorrido. Uma colega de trabalho teve os dados do seu pendrive totalmente renomeados para uma extensão do tipo "CHK ". Ela estava apavorada, pois o conteúdo era importante e continha, além de fotos, os trabalhos da faculdade também. Ela me pediu ajuda para tentar recuperá-los e eu disse que ia ver o que podia fazer.
Abrindo o pendrive, vi que tinha 4 pastas sendo que: uma estava intitulada de "fotos", outra de "trabalhos", outra de "músicas" e a última de "monografia". A primeira tentativa minha foi de recuperar os arquivos da pasta trabalho, para isso eu tentei renomear a extensão do primeiro arquivo que no caso estava assim: nome_do_arquivo.CHK para nome_do_arquivo.doc.
Após isso abri o arquivo normalmente e pude visualizar o seu conteúdo. Só que na pasta "trabalho" deveria ter +/- uns 200 arquivos com a extensao CHK, e eu não sou louco nem nada para renomear um de cada vez. Foi aí que pensei em um script que fizesse isso de forma rápida e sem muito trabalho, o qual compartilho com vocês hoje.
Lembrando que para executar o script o mesmo deve estar na pasta onde encontram-se os arquivos a serem renomeados e você deverá dar permissão de execução para tal.
Ex.: no terminal digite:
chmod +x RenomeiaArq.sh
Logo após digite:
./RenomeiaArq.sh
E pronto, seus arquivos estarão com as extensões totalmente renomeadas.
Dias atrás me deparei com uma situação que até então não tinha me ocorrido. Uma colega de trabalho teve os dados do seu pendrive totalmente renomeados para uma extensão do tipo "CHK ". Ela estava apavorada, pois o conteúdo era importante e continha, além de fotos, os trabalhos da faculdade também. Ela me pediu ajuda para tentar recuperá-los e eu disse que ia ver o que podia fazer.
Abrindo o pendrive, vi que tinha 4 pastas sendo que: uma estava intitulada de "fotos", outra de "trabalhos", outra de "músicas" e a última de "monografia". A primeira tentativa minha foi de recuperar os arquivos da pasta trabalho, para isso eu tentei renomear a extensão do primeiro arquivo que no caso estava assim: nome_do_arquivo.CHK para nome_do_arquivo.doc.
Após isso abri o arquivo normalmente e pude visualizar o seu conteúdo. Só que na pasta "trabalho" deveria ter +/- uns 200 arquivos com a extensao CHK, e eu não sou louco nem nada para renomear um de cada vez. Foi aí que pensei em um script que fizesse isso de forma rápida e sem muito trabalho, o qual compartilho com vocês hoje.
Lembrando que para executar o script o mesmo deve estar na pasta onde encontram-se os arquivos a serem renomeados e você deverá dar permissão de execução para tal.
Ex.: no terminal digite:
chmod +x RenomeiaArq.sh
Logo após digite:
./RenomeiaArq.sh
E pronto, seus arquivos estarão com as extensões totalmente renomeadas.
## Script para renomear extensões
#
# Autor: Fernando Pinheiro
# Data: 22/08/2010
#!/bin/sh
# Depois do "ponto" você deve mudar a extensão de acordo com o seu arquivo
# No meu caso todos arquivos estavam com a extensão "CHK".
for arquivo in *.CHK
do
# Depois de "arquivo" voce deverá mudar a extensão novamente para extensão
# do seu arquivo, e logo apos o ")" voce devera escolher a extensao para #renomearção #dos arquivos. No meu caso eu queria todos os arquivos com
#extensão "doc".
newname=$(basename $arquivo CHK)doc
# Faz com que o arquivo seja renomeado
mv $arquivo $newname
done
#
# Autor: Fernando Pinheiro
# Data: 22/08/2010
#!/bin/sh
# Depois do "ponto" você deve mudar a extensão de acordo com o seu arquivo
# No meu caso todos arquivos estavam com a extensão "CHK".
for arquivo in *.CHK
do
# Depois de "arquivo" voce deverá mudar a extensão novamente para extensão
# do seu arquivo, e logo apos o ")" voce devera escolher a extensao para #renomearção #dos arquivos. No meu caso eu queria todos os arquivos com
#extensão "doc".
newname=$(basename $arquivo CHK)doc
# Faz com que o arquivo seja renomeado
mv $arquivo $newname
done
for arquivo in *.CHK
do mv ./"$arquivo" "${arquivo%CHK}doc";
done
Só não me peça pra explicar as sintaxes :-p