Pular para o conteúdo

Limpar arquivos temporários

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! ;)
Phillipe Smith Smithux
Hits: 26.387 Categoria: Shell Script Subcategoria: Avançado
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

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! ;)
Download limpa-temps Enviar nova versão

Versões atualizadas deste script

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

Script para acessar terminais LInux e Unixes remotos do XDM

Firewall

Select tablespace

POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - BLOQUEAR IP

Baixar flatpak para um arquivo local

#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

Entre na sua conta para comentar.