Compac.sh - Compactador de arquivos
Publicado por Sandro Marcell 02/04/2007
[ Hits: 6.022 ]
Homepage: http://sanmarcell.wordpress.com
Shell script que compacta arquivos nos seguintes formatos:
.gz, .bz2. .tar.gz e .tar.bz2
Além de brincar com alguns códigos de cores.
#!/bin/bash
## Compac.sh - Compactador 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
# Este script compacta arquivos e diretórios.
# São necessários os programas: Gzip, Bzip2 e Tar.
# Uso: nome_script /caminho/arquivo ou diretório.
# 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 ou diretório\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 continua!
# 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 compactá-lo:
if [ ! -O $BASH_ARGV ]; then
echo -e '\e[1;33;41m'"\n\aSem permissão para compactar!\n"
tput sgr0
exit
fi
# Se as duas condições acima forem satisfeitas, o script apresenta
# na tela do terminal, essas opções ao usuário:
echo -ne '\e[1m'"\e[1;33;41m\nQual compactador deseja utilizar?\n
[Programa] [Extensão]
1 | Gzip | | .gz |
2 | Bzip2 | | .bz2 |
3 | Tar + Gzip | | .tar.gz |
4 | Tar + Bzip2 | | .tar.bz2 |\n
Digite o número da opção desejada! (1-4):"
tput sgr0
read TIPO
# Funções que serão utilizadas na construção "case":
Aguarde () {
echo -e '\e[1m'"\e[5;36m\nCompactando... Aguarde!"
tput sgr0
sleep 1
}
Sucesso () {
echo -e '\e[1;32m'"\e[4m\nCompactação finalizada com sucesso!\n"
tput sgr0
}
Erro () { echo -e '\e[1;31;43m'"\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 construção "case", que determinará o comando a ser executado:
case $TIPO in
1)
Aguarde
if gzip -f -9 $BASH_ARGV 2> /dev/stdout; then
Sucesso
else
Erro
exit
fi ;;
2)
Aguarde
if bzip2 -z -k -9 $BASH_ARGV 2> /dev/stdout; then
Sucesso
else
Erro
exit
fi ;;
3)
Aguarde
if tar -c -z -f $BASH_ARGV.tar.gz $BASH_ARGV 2> /dev/stdout; then
Sucesso
else
Erro
exit
fi ;;
4)
Aguarde
if tar -c -j -f $BASH_ARGV.tar.bz2 $BASH_ARGV 2> /dev/stdout; then
Sucesso
else
Erro
exit
fi ;;
*)
echo -e '\e[1;31;43m'"\n\aOpção inválida:\e[1;35;47m Escolha uma \
entre 1 e 4.\n"; tput sgr0 ;;
esac
Browser - use rofi para acessar páginas na web
Papagaiando o XFCE com temas e recursos
WhatsApp com Chamadas no Linux via Waydroid
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Instalando o COSMIC DE no Gentoo (systemd)
Centralizar Logo com Transparência via ImageMagick
Removendo entradas de boot UEFI "fantasmas" via terminal
Atualizações de Segurança Automáticas no Debian
Como cortar as partes de um vídeo com passagens de áudio em branco
Midia de instalação LM-21.3 não inicializa [RESOLVIDO] (15)
What are the biggest challenges banks face with compliance training? (0)
Reunir material [RESOLVIDO] (4)
Uma pergunta bem simples mas não achei resposta (ainda) [RESOLVIDO] (4)









