Descrição
Eu estou começando no mundo dos scripts e para praticar resolvi fazer um que mudasse a extensão de vários arquivos de um mesmo diretório.
Fiz de diversas formas, até que cheguei descobri o basename que me deu tudo que eu precisava.
O Código está logo abaixo para quem quiser copiar, sugerir e opinar.
Ainda quero melhorar esse script, principalmente a mensagem que fica aparecendo quando não são encontrados arquivos.
Valeu! ;)
[ Download:
muda_extensao.sh ]
[
Enviar nova versão ]
[ Esconder código-fonte ]
#/bin/bash
#
#
# Script que altera a extensão de vários arquivo de uma vez.
#
#
#
# Eduardo Carvalho, Novembro de 2011
EXTENSAO_ENTRADA="$1" # Atual extensão dos arquivos
EXTENSAO_SAIDA="$2" # Nova extensão que terão os arquivos
NOME="" # Nome do arquivo, sem extensão
NOVO_NOME="" # Nome do arquivo após ser renomeado
if [ $# -ne 2 ]; then
echo "$(basename "$0"): erro de operandos"
#TODO Try `basename --help' for more information.
exit 1
fi
#--- RENOMEIA ---#
for ARQUIVO in *."$EXTENSAO_ENTRADA"
do
NOVO_NOME=$(basename "$ARQUIVO" "$EXTENSAO_ENTRADA")"$EXTENSAO_SAIDA"
mv "$ARQUIVO" "$NOVO_NOME" && echo " $ARQUIVO -> $NOVO_NOME"
done
Scripts recomendados
Sorteio
Calculadora v0.0.2
Agenda de Contatos
Criar backup do Diretorio /home
Backup de varias pastas
Comentários
[1] Comentário enviado por
eldermarco em 25/11/2011 - 10:00h:
Existe também uma maneira de fazer isso usando o comando rename. Por exemplo, suponhamos que você quer mudar a extensão de arquivos .png para .jpg porque estão erradas. Então:
$ rename .png .jpg *.png
Muda tudo =]