Limpar arquivos temporários

Publicado por Phillipe Smith 01/07/2009 (última atualização em 21/09/2009)

[ Hits: 25.678 ]

Homepage: http://phillipelnx.com

Download limpa-temps

Download limpa-temps.sh (versão 2)




Segue um pequeno ShellScript para limpar arquivos temporários do Linux. Aqueles arquivos
com extensões .bak, .tmp ou com um ~ no final do nome do arquivo [ exemplo: arquivo.txt\~ ].

É bem útil! Espero que seja útil para todos também! ;)

  



Versões atualizadas deste script

Versão 2 - Enviado por Phillipe Smith em 20/09/2009

Changelog: Corrigido modo de execução como administrador.

Download limpa-temps.sh


Esconder código-fonte

#!/bin/sh


#################################################################
#                                                               #
# ShellScript para limpeza de arquivos temporários do sistema   #
#                                                               #
# Autor: Phillipe Smith ( SmithuX )                             #
# Email: phillipe@archlinux.com.br                              #
#                                                               #
#################################################################                                                            


function LINHAS(){
for i in `seq 1 50`
do
   echo -n "="
done
echo -e "\n"
}

function LIMPAR(){

echo -e "\nOs seguintes arquivos fora encontrados: \n"
echo -e  "=============================================\n"
sed -n 'p' $log

if [ -s $log ];then
   echo -e  "\n============================================="
   echo -ne "\nDeseja remover os arquivos listados? [ s ou n ]:  "
   read opcao
   case $opcao in
      's')
      clear   
      while [ $cont -lt  $num ] 
      do
         comando=$cont"p"
         arquivo=`sed -n $comando $log`
         echo -e "\n"
         rm -rfv "$arquivo"
         echo -e "\n"
         cont=`expr $cont + 1`
      done
      
      LINHAS
      echo -e "\t     Operação concluída! \n"
      LINHAS
      rm -rf $log
      killall -9 $(basename $0) 2>/dev/null
      ;;

      'n')
      clear
      LINHAS
      echo -e "\t   Operação cancelada......\n"
      LINHAS
      rm -rf $log
      exit
      ;;

      *)
      clear
      echo -e "\n====> '$opcao' não é uma opção válida. <====\n\n"
      LIMPAR
      ;;
   esac
else
   clear
   LINHAS
   echo -e "\tNenhum arquivo temporário encontrado.\n"
   LINHAS
   rm -rf $log
fi
}

if [ $(whoami) != "root" ]; then
echo -e   """\n
==================================================
Caso você execute o aplicativo como usuário comum, 
somente será possível excluir arquivos temporários 
onde seu usuário tem permissão.
==================================================\n
"""

echo -n "Deseja executar como root? [ s ou n ]: "
read opt

if [ $opt == "s" ]; then
   su root -c `which $(basename $0)`
else if [ $opt == "n" ];then
   continue
else
   echo "Opção Inválida...."
   exit
fi
fi
fi

clear
echo "Procurando arquivos temporários.................."

log="/tmp/temps.log"
procurar=$(find / -iname "*~" -o -iname "*.bak" -o -iname "*.tmp" > $log 2> /dev/null)
num=`wc -l $log | awk '{print $1}'`
num=`expr $num + 1`
cont=1

LIMPAR


Scripts recomendados

Renomeia diretorio,subdiretorio e arquivos de maiuscula > minuscula

Backup diario rotativo MySQL + Backup semanal mantendo uma cópia local e remota

Projeto Wine's Faces

POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - APAGANDO MSG ANTIGAS EM TODAS AS PASTAS DE UM USUÁRIO

SCRIPT PARA AUTOMAÇÃO DE ATUALIZAÇÃO EM AMBIENTE DEBIAN OU DERIVADOS.


  

Comentários
[1] Comentário enviado por erasmo em 20/09/2009 - 17:16h

Phillipe Smith,

esta dando este erro:

./limpa-temps: 12: Syntax error: "(" unexpected

erasmo

[2] Comentário enviado por Smithux em 20/09/2009 - 21:15h

Opa Erasmo!
Obrigado por reportar.

Verifiquei o script novamente e gostaria que você testasse.

Segue o link para download: http://pastie.org/624042

Obrigado!

[3] Comentário enviado por removido em 21/09/2009 - 09:02h

Bonitinho seu script. Eu tinha um desses no meu pc. One liners para fazer esse trabalho:

find $HOME -iname "*~" -exec rm -f {} \;

só trocar o argumento do -iname por "*.bak", "*.tmp", etc. Ou:

for i in *~ *.bak *.tmp; do
find $HOME -iname "$i" -exec rm -f {} \;
done

[4] Comentário enviado por rweu em 03/04/2011 - 19:15h

Fala Phillipe,

Aqui é o rweu, do Arch, blz de script meu garoto!!

Valeu!!

[5] Comentário enviado por corrosiontears em 16/06/2012 - 18:53h

Pergunta. Caso eu queria adicionar esse e o outro Script de Limpeza de Cache no /etc/cron.hourly/ vai funcionar bem? E é recomendável eu limpar os arquivos temporários de hora em hora? Ou é melhor eu agendar num período mais longo?

[6] Comentário enviado por Smithux em 16/06/2012 - 21:22h

carrosiontears, na verdade como o script necessita de parâmetros, é melhor colocar sua rotina no /etc/cron.d e agendar um período mais longo, tipo final do dia.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts