Compac.sh - Compactador de arquivos
Publicado por Sandro Marcell 02/04/2007
[ Hits: 5.837 ]
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
Comandos para Avira AntiVir (ATUALIZADO!)
Cadastrando e removendo usuários do SAMBA com um script
Whitelist e Blacklist Zimbra 8.8
audsw - trocar configurações do ALSA de forma fácil
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Gestão de Ambiente em uma rede Linux (2)
Ajuda Pra Melhoria do NFTABLES. (7)
Zorin OS - Virtual Box não consigo abrir maquinas virtuais (4)