Descom.sh - Descompactador de arquivos

Publicado por Sandro Marcell 02/04/2007

[ Hits: 5.776 ]

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: sandro_marcell@yahoo.com.br
## 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

Backup e restauração dos programas instalados em sistemas baseados em Debian

Monitor de usuarios

Enviar gráficos 3D pela janela de chat no Kopete

plaspkg

tradcon


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts