Compac.sh - Compactador de arquivos
Publicado por Sandro Marcell 02/04/2007
[ Hits: 5.874 ]
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
Baixador automático de Sabayon
Parando o Screeensaver do Gnome durante uma reprodução no mplayer
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Debian 13 Trixie para Iniciantes
Convertendo pacotes DEB que usam ZSTD (Padrão Novo) para XZ (Padrão Antigo)
baschrc customizado pegeui vários. (3)
Rust é o "C da nossa geração"? (8)