Script com muitas utilidades para arquivos e pastas
De uns meses para cá comecei a ter algumas dificuldades em manter todos os meus arquivos organizados. Desde que comecei a tirar fotos digitais eu armazeno todas, organizadas por eventos, assim como meus vídeos e demais arquivos pessoais. Sem contar que também tenho uma imensa quantidade de músicas organizadas por bandas, apresentações separadas por tipo, filmes por gênero, documentos etc.
Parte 2: O script
Bom pessoal, agora chega de blá blá blá e vamos botar o script pra funcionar.
Espero colaborar com muitos usuários e desejo ótimo divertimento com seus arquivos e pastas! :-)
Download do script: utilidades_shell.sh
Pessoal, copiem e colem o script em um arquivo chamado "utilidades_shell.sh" (ou qualquer outro nome) e deem permissão para execução, com o comando:
chmod +x utilidades_shell.sh
Agora basta executar:
./utilidades_shell.sh
Até a próxima!!!
Espero colaborar com muitos usuários e desejo ótimo divertimento com seus arquivos e pastas! :-)
#!/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
Xdialog --dselect ./ 30 75 2> $r1
resp1=`cat $r1`
if [ -z $resp1 ]
then
Xdialog --msgbox "DEVE-SE ESCOLHER A PASTA" 5 40
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
fi
rm $r1
}
##### 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`
if [ -z $resp1 ]
then
Xdialog --msgbox "DEVE-SE ESCOLHER A PASTA" 5 40
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
fi
rm $r1
}
###### 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`
if [ -z $resp1 ]
then
Xdialog --msgbox "DEVE-SE ESCOLHER A PASTA" 5 40
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
fi
rm $r1
}
##### 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`
if [ -z $resp1 ]
then
Xdialog --msgbox "DEVE-SE ESCOLHER A PASTA" 5 40
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
fi
rm $r1
}
##### 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`
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
else
Xdialog --msgbox "ABORTANDO O SCRIPT" 5 30
fi
rm $r1
}
##### 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`
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=`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
if [ "$?" = "0" ]
then
Xdialog --inputbox "DIGITE O NOVO NOME DOS ARQUIVOS" 10 40 2> $r3
resp3=`cat $r3`
i=0
cd $resp1
if [ -z $resp1 ] || [ -z $resp2 ] || [ -z $resp3 ]
then
Xdialog --msgbox "DEVE-SE DIGITAR O NOVO NOME" 5 40
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
fi
fi
rm $r1 $r2 $r3
}
##### MENU #####
MENU()
{
operacao=`Xdialog --title "UTILIDADES SHELL" --center --stdout --menubox \
"O que você deseja fazer? " \
20 50 0 \
1 "TRANSFORMAR PASTAS EM MAIÚSCULAS" \
2 "TRANSFORMAR PASTAS EM MINÚSCULAS" \
3 "TRANSFORMAR ARQUIVOS EM MAIÚSCULOS" \
4 "TRANSFORMAR ARQUIVOS EM MINÚSCULOS" \
5 "RETIRAR ESPAÇO DE ARQUIVOS E PASTAS" \
6 "RENOMEAR" \
7 "SAIR"`
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) Xdialog --msgbox "ABORTANDO O SCRIPT" 5 40
;;
*) Xdialog --msgbox "ATE A PROXIMA!" 5 40
;;
esac
}
MENU
#
##### 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
Xdialog --dselect ./ 30 75 2> $r1
resp1=`cat $r1`
if [ -z $resp1 ]
then
Xdialog --msgbox "DEVE-SE ESCOLHER A PASTA" 5 40
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
fi
rm $r1
}
##### 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`
if [ -z $resp1 ]
then
Xdialog --msgbox "DEVE-SE ESCOLHER A PASTA" 5 40
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
fi
rm $r1
}
###### 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`
if [ -z $resp1 ]
then
Xdialog --msgbox "DEVE-SE ESCOLHER A PASTA" 5 40
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
fi
rm $r1
}
##### 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`
if [ -z $resp1 ]
then
Xdialog --msgbox "DEVE-SE ESCOLHER A PASTA" 5 40
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
fi
rm $r1
}
##### 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`
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
else
Xdialog --msgbox "ABORTANDO O SCRIPT" 5 30
fi
rm $r1
}
##### 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`
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=`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
if [ "$?" = "0" ]
then
Xdialog --inputbox "DIGITE O NOVO NOME DOS ARQUIVOS" 10 40 2> $r3
resp3=`cat $r3`
i=0
cd $resp1
if [ -z $resp1 ] || [ -z $resp2 ] || [ -z $resp3 ]
then
Xdialog --msgbox "DEVE-SE DIGITAR O NOVO NOME" 5 40
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
fi
fi
rm $r1 $r2 $r3
}
##### MENU #####
MENU()
{
operacao=`Xdialog --title "UTILIDADES SHELL" --center --stdout --menubox \
"O que você deseja fazer? " \
20 50 0 \
1 "TRANSFORMAR PASTAS EM MAIÚSCULAS" \
2 "TRANSFORMAR PASTAS EM MINÚSCULAS" \
3 "TRANSFORMAR ARQUIVOS EM MAIÚSCULOS" \
4 "TRANSFORMAR ARQUIVOS EM MINÚSCULOS" \
5 "RETIRAR ESPAÇO DE ARQUIVOS E PASTAS" \
6 "RENOMEAR" \
7 "SAIR"`
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) Xdialog --msgbox "ABORTANDO O SCRIPT" 5 40
;;
*) Xdialog --msgbox "ATE A PROXIMA!" 5 40
;;
esac
}
MENU
Download do script: utilidades_shell.sh
Pessoal, copiem e colem o script em um arquivo chamado "utilidades_shell.sh" (ou qualquer outro nome) e deem permissão para execução, com o comando:
chmod +x utilidades_shell.sh
Agora basta executar:
./utilidades_shell.sh
Até a próxima!!!
foi para o favoritos.