Enviado em 25/05/2012 - 11:09h
Faz tempo que pesquisando sobre dúvidas em comandos eu encontro este script: http://www.vivaolinux.com.br/artigo/Script-com-muitas-utilidades-para-arquivos-e-pastas/ do @alexandregms
#!/bin/bash
#
##### DESENVOLVIDO POR ALEXANDRE MONTEIRO: alexandregms2@gmail.com
#
## SCRIPT PARA UTILIDADES EM ARQUIVOS E/OU PASTAS
## PARA UM DESKTOP PESSOAL: TRABALHAR COM IMAGENS, MUSICAS, VÍDEOS, ETC
## PARA UM AMBIENTE CORPORATIVO: TRABALHAR COM LOGS, BACKUP's, ETC
#
#r1="/tmp/resp1.tmp"
#r2="/tmp/resp2.tmp"
#r3="/tmp/resp3.tmp"
###### PASTAS VIRAR MAIÚSCULAS ######
PASTAS_VIRAR_MAIUSCULAS()
{
#Xdialog --msgbox "NA TELA SEGUINTE SELECIONE O DIRETÓRIO EM QUE \n SE DESEJA TRANSFORMAR TODAS AS PASTAS EM MAIÚSCULO" 10 70
resp1=$(zenity --text "SELECIONE O DIRETÓRIO EM QUE SE DESEJA TRANSFORMAR TODAS AS PASTAS EM MAIÚSCULO" --entry --title "Informe" " ");
#Xdialog --dselect ./ 30 75 2> $r1
#resp1=`cat $r1`
if [ -z $resp1 ]
then
#Xdialog --msgbox "DEVE-SE ESCOLHER A PASTA" 5 40
zenity --error --title "Error" --text="DEVE-SE ESCOLHER A PASTA"
else
cd $resp1
find * -maxdepth 0 -type d | while read dir
do
novo_nome=`echo $dir | tr 'a-z' 'A-Z'`
mv "$dir" "$novo_nome" 2> /dev/null
done
#Xdialog --msgbox "AS PASTAS DO DIRETÓRIO\n $resp1 \n FORAM TRANSFORMADAS EM MAIÚSCULAS" 10 70
zenity --info --text "AS PASTAS DO DIRETÓRIO\n $resp1 \nFORAM TRANSFORMADAS EM MAIÚSCULAS" --title="Operacao concluída"
fi
#rm $r1
MENU
}
##### PASTAS VIRAR MINÚSCULAS #####
PASTAS_VIRAR_MINUSCULAS()
{
#Xdialog --msgbox "NA TELA SEGUINTE SELECIONE O DIRETÓRIO EM QUE \n SE DESEJA TRANSFORMAR TODAS AS PASTAS EM MINÚSCULO" 10 70
#Xdialog --dselect ./ 30 75 2> $r1
#resp1=`cat $r1`
resp1=$(zenity --title "Informe o Diretorio" --entry --text "SELECIONE O DIRETÓRIO EM QUE SE DESEJA TRANSFORMAR TODAS AS PASTAS EM MINÚSCULO");
if [ -z $resp1 ]
then
#Xdialog --msgbox "DEVE-SE ESCOLHER A PASTA" 5 40
zenity --error --title "Error" --text="DEVE-SE ESCOLHER A PASTA"
else
cd $resp1
find * -maxdepth 0 -type d | while read dir
do
novo_nome=`echo $dir | tr 'A-Z' 'a-z'`
mv "$dir" "$novo_nome" 2> /dev/null
done
#Xdialog --msgbox "AS PASTAS DO DIRETÓRIO\n $resp1 \n FORAM TRANSFORMADAS EM MINÚSCULAS" 10 70
zenity --info --title "Concluido" --text="AS PASTAS DO DIRETÓRIO\n $resp1 \nFORAM TRANSFORMADAS EM MINÚSCULAS"
fi
#rm $r1
MENU
}
###### ARQUIVOS VIRAR MAIÚSCULOS ######
ARQUIVOS_VIRAR_MAIUSCULOS()
{
#Xdialog --msgbox "NA TELA SEGUINTE SELECIONE O DIRETÓRIO EM QUE \n SE DESEJA TRANSFORMAR OS ARQUIVOS EM MAIÚSCULOS" 10 70
#Xdialog --dselect ./ 30 75 2> $r1
#resp1=`cat $r1`
resp1=$(zenity --title "Informe o Diretorio" --entry --text "SELECIONE O DIRETÓRIO EM QUE SE DESEJA TRANSFORMAR OS ARQUIVOS EM MAIÚSCULOS");
if [ -z $resp1 ]
then
#Xdialog --msgbox "DEVE-SE ESCOLHER A PASTA" 5 40]
zenity --error --title "Error" --text="DEVE-SE ESCOLHER A PASTA"
else
cd $resp1
find * -maxdepth 0 -type f | while read dir
do
novo_nome=`echo $dir | tr 'a-z' 'A-Z'`
mv "$dir" "$novo_nome" 2> /dev/null
done
#Xdialog --msgbox "OS ARQUIVOS DA PASTA\n $resp1 \n FORAM TRANSFORMADOS EM MAIÚSCULOS" 10 70
zenity --info --title "Concluido" --text="OS ARQUIVOS DA PASTA\n $resp1 \nFORAM TRANSFORMADOS EM MAIÚSCULOS"
fi
#rm $r1
MENU
}
##### ARQUIVOS VIRAR MINÚSCULOS #####
ARQUIVOS_VIRAR_MINUSCULOS()
{
#Xdialog --msgbox "NA TELA SEGUINTE SELECIONE O DIRETÓRIO EM QUE \n SE DESEJA TRANSFORMAR OS ARQUIVOS EM MINÚSCULOS" 10 70
#Xdialog --dselect ./ 30 75 2> $r1
#resp1=`cat $r1`
resp1=$(zenity --title "Informe o Diretorio" --entry --text "SELECIONE O DIRETÓRIO EM QUE \n SE DESEJA TRANSFORMAR OS ARQUIVOS EM MINÚSCULOS");
if [ -z $resp1 ]
then
#Xdialog --msgbox "DEVE-SE ESCOLHER A PASTA" 5 40
zenity --error --title "Error" --text="DEVE-SE ESCOLHER A PASTA"
else
cd $resp1
find * -maxdepth 0 -type f | while read dir
do
novo_nome=`echo $dir | tr 'A-Z' 'a-z'`
mv "$dir" "$novo_nome" 2> /dev/null
done
#Xdialog --msgbox "OS ARQUIVOS DA PASTA\n $resp1 \n FORAM TRANSFORMADOS EM MINÚSCULOS" 10 70
zenity --info --title "Concluido" --text="OS ARQUIVOS DA PASTA\n $resp1 \nFORAM TRANSFORMADOS EM MINÚSCULOS"
fi
#rm $r1
MENU
}
##### ESPAÇO RETIRAR #####
ESPACO_RETIRAR()
{
#Xdialog --msgbox "NA TELA SEGUINTE SELECIONE O DIRETÓRIO EM QUE OS \n ESPAÇOS DA PASTA E ARQUIVOS\n SERÃO SUBSTITUÍDOS POR '_'" 10 70
#Xdialog --dselect ./ 30 75 2> $r1
#resp1=`cat $r1`
resp1=$(zenity --title "Informe o Diretorio" --entry --text "SELECIONE O DIRETÓRIO EM QUE OS \nESPAÇOS DA PASTA E ARQUIVOS\nSERÃO SUBSTITUÍDOS POR '_'");
if [ ! -z $resp1 ]
then
cd $resp1
find * -maxdepth 0 -name '*' | while read pasta
do
new_name=`echo $pasta | sed 's/ /_/g'`
mv "$pasta" "$new_name" 2> /dev/null
done
#Xdialog --msgbox "OS ESPAÇOS DO DIRETÓRIO\n $resp1 \n FORAM SUBSTITUÍDOS POR '_'" 10 70
zenity --info --title "Concluido" --text="OS ESPAÇOS DO DIRETÓRIO\n $resp1 \nFORAM SUBSTITUÍDOS POR '_'"
else
#Xdialog --msgbox "ABORTANDO O SCRIPT" 5 30
zenity --info --title "Cancelado" --text="ABORTANDO O SCRIPT"
fi
#rm $r1
MENU
}
##### RENOMEAR #####
RENOMEAR()
{
#Xdialog --msgbox "NA TELA SEGUINTE SELECIONE A PASTA ONDE ESTÃO OS ARQUIVOS" 5 65
#Xdialog --dselect ./ 30 75 2> $r1
#resp1=`cat $r1`
resp1=$(zenity --title "Informe o Diretorio" --entry --text "SELECIONE A PASTA ONDE ESTÃO OS ARQUIVOS");
extensoes=`
for file in $resp1*
do
echo ${file##*.}
done | sort | uniq`
#Xdialog --inputbox "QUAL EXTENSÃO VOCÊ DESEJA RENOMEAR?\n CONSIDERE MAIÚSCULAS E MINÚSCULAS \n\n$extensões" 20 60 2> $r2
resp2=$(zenity --title "Informe a extensão" --entry --text "QUAL EXTENSÃO VOCÊ DESEJA RENOMEAR?\n CONSIDERE MAIÚSCULAS E MINÚSCULAS \n\n$extensoes");
#resp2=`cat $r2`
#Xdialog --yesno "NA TELA SEGUINTE VOCÊ IRA DIGITAR O NOVO NOME DOS ARQUIVOS, \n POREM NÃO ESCOLHA O MESMO NOME QUE JÁ EXISTA NA PASTA,\n POIS VOCÊ PODERÁ PERDER ALGUNS ARQUIVOS. \n DESEJA CONTINUAR?" 15 70
zenity --question --text="DIGITAR O NOVO NOME DOS ARQUIVOS, PORÉM NÃO ESCOLHA O MESMO NOME QUE JÁ EXISTA NA PASTA, POIS VOCÊ PODERÁ PERDER ALGUNS ARQUIVOS.\nDESEJA CONTINUAR?"
if [ "$?" = "0" ]
then
#Xdialog --inputbox "DIGITE O NOVO NOME DOS ARQUIVOS" 10 40 2> $r3
#resp3=`cat $r3`
resp3=$(zenity --title "Informe" --entry --text "DIGITE O NOVO NOME DOS ARQUIVOS");
i=0
cd $resp1
if [ -z $resp1 ] || [ -z $resp2 ] || [ -z $resp3 ]
then
#Xdialog --msgbox "DEVE-SE DIGITAR O NOVO NOME" 5 40
zenity --error --title "Error" --text="DEVE-SE PREENCHER TODOS OS CAMPOS"
else
arquivos=`ls -trC1 *.$resp2`
for j in $arquivos
do
echo "RENOMEANDO $j PARA $resp3\_$i.$resp2"
mv $j $resp3\_$i.$resp2 2> /dev/null
i=`expr $i + 1`
done
#Xdialog --msgbox "OS ARQUIVOS COM EXTENSÃO *.$resp2 DA PASTA:\n $resp1 \n FORAM RENOMEADOS COM SUCESSO" 10 70
zenity --info --title "Concluido" --text="OS ARQUIVOS COM EXTENSÃO *.$resp2 DA PASTA:\n $resp1 \nFORAM RENOMEADOS COM SUCESSO"
fi
fi
#rm $r1 $r2 $r3
MENU
}
##### MENU #####
MENU()
{
operacao=$(zenity --entry --text "Menu\n
1. TRANSFORMAR PASTAS EM MAIÚSCULAS\n
2. TRANSFORMAR PASTAS EM MINÚSCULAS\n
3. TRANSFORMAR ARQUIVOS EM MAIÚSCULOS\n
4. TRANSFORMAR ARQUIVOS EM MINÚSCULOS\n
5. RETIRAR ESPAÇO DE ARQUIVOS E PASTAS\n
6. RENOMEAR\n
7. SAIR" --title "Menu Principal")
case $operacao in
1) PASTAS_VIRAR_MAIUSCULAS
;;
2) PASTAS_VIRAR_MINUSCULAS
;;
3) ARQUIVOS_VIRAR_MAIUSCULOS
;;
4) ARQUIVOS_VIRAR_MINUSCULOS
;;
5) ESPACO_RETIRAR
;;
6) RENOMEAR
;;
7) zenity --info --title "Exit" --text="Terminando a execução do script"
;;
*) zenity --info --title "Exit" --text="Terminando a execução do script"
;;
esac
}
MENU