Descom.sh - Descompactador de arquivos

Publicado por Sandro Marcell 02/04/2007

[ Hits: 5.600 ]

Homepage: http://sanmarcell.wordpress.com

Download descom.sh




Shell script que descompacta arquivos com os seguintes formatos:

.gz, .bz2, .tar.gz e .tar.bz2

Além de brincar com alguns códigos de cores.

  



Esconder código-fonte

#!/bin/bash

## Descom.sh - Descompactador de arquivos em shell script
## Escrito por: Sandro Marcell P. Barbosa (Boa Vista - Roraima)
## E-mail: [email protected]
## Slackware GNU/Linux 10.1

# As extensões suportadas são:
# .gz, .bz2, .tar.gz (.tgz) e .tar.bz2 (.tbz).
# Uso: nome_script /caminho/arquivo.extensão
# Use Ctrl+c para sair.

# Checa se o usuário passou algum parâmetro para o script:
if [ $# -eq 0 ]; then
   echo -e '\e[1;31;43m'"\n\aUso:\e[1;37;42m `basename $0` \
/caminho/arquivo.extensão\n"; tput sgr0
   exit
elif [ $# -ge 2 ]; then
   echo -e '\e[1;31;43m'"\n\aEspecifique um arquivo por vez!\n"
   tput sgr0
   exit
fi

# Caso tenha passado, o script contínua!

# Checa se o parâmetro passado (o arquivo), existe:
if [ ! -e $BASH_ARGV ]; then
   echo -e '\e[1;33;44m'"\n\aArquivo ou diretório não encontrado!\n"
   tput sgr0
   exit
fi

# Se existir, checa se o usuário pode descompactá-lo:
if [ ! -O $BASH_ARGV ]; then
   echo -e '\e[1;33;41m'"\nSem permissão para descompactar!\n"
   tput sgr0
   exit
fi

# Se as duas condições acima forem satisfeitas, 
# a instrução "case" será executada:

# Estas são funções que serão utilizadas na instrução "case":
Aguarde () {
   echo -e '\e[1m'"\e[5;35m\nDescompactando... Aguarde!"
   tput sgr0
   sleep 1
}

Sucesso () {
   echo -e '\e[1;36m'"\e[4m\nDescompactação finalizada com sucesso!\n"
   tput sgr0
}

Erro () { echo -e '\e[1m'"\e[1;33;41m\aErro!\n"; tput sgr0; }

# Caso o processo seja interrompido, um backup do arquivo
# será criado no diretório /home do usuário, por segurança:
trap "dd if=$BASH_ARGV of=$BASH_ARGV.bak 2> /dev/null" 2 3 15

# Início da instrução "case", que determinará o comando a ser executado:
case $BASH_ARGV in
   
   *.tar.gz | *.tgz)
   Aguarde
   if tar -z -x -f $BASH_ARGV 2> /dev/stdout; then
      Sucesso
   else
      Erro
      exit
   fi ;;
   
   *.gz)
   Aguarde
   if gunzip $BASH_ARGV 2> /dev/stdout; then
      Sucesso
   else
      Erro
      exit
   fi ;;
   
   *.tar.bz2 | *.tbz)
   Aguarde
   if tar -j -x -f $BASH_ARGV 2> /dev/stdout; then
      Sucesso
   else
      Erro
      exit
   fi ;;

   *.bz2)
   Aguarde
   if bunzip2 $BASH_ARGV 2> /dev/stdout; then
      Sucesso
   else
      Erro
      exit
   fi ;;

   *)
   echo -e '\e[1;31;43m'"\n\aArquivo com extensão não suportada!\n"
   tput sgr0
   ;;
esac

Scripts recomendados

Apagar arquivos maliciosos de pastas compartilhadas pelo Samba periodicamente

Catsort - Concatenar resultado filtrando e removendo repetidas

MRTG Start | Stop | Status | Restart

Atualizador de sistema multipla escolha

analise


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts