Compac.sh - Compactador de arquivos
Publicado por Sandro Marcell 02/04/2007
[ Hits: 5.731 ]
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
Visualizar ícone dos .exe em seu Gnome
Instalador de Lutris com winehq-staging para rodar Origin em Debian Bullseye (Kernel 5.10.0-23) - 64
Script para renomear vários arquivos ao mesmo tempo.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
SysAdmin ou DevOps: Qual curso inicial pra essa área? (0)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta