Descom.sh - Descompactador de arquivos
Publicado por Sandro Marcell 02/04/2007
[ Hits: 6.141 ]
Homepage: http://sanmarcell.wordpress.com
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.
#!/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
exenow - Habilitando suporte a executaveis windows no kernel do linux
arcade.sh - front-end para AdvanceMAME
arredonda - arredondando valores decimais quebrados
Monitoramento de Tráfego de rede
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
[Resolvido] VirtualBox can't enable the AMD-V extension
Como verificar a saúde dos discos no Linux
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Não consigo instalar distro antiga no virtualbox nem direto no hd (14)
Quais os códigos mais dificeis que vcs sabem fazer? (12)
systemd-resol... precisa ser reiniciado periodicamente [RESOLVIDO] (7)









