Compac.sh - Compactador de arquivos
Publicado por Sandro Marcell 02/04/2007
[ Hits: 5.887 ]
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
Alterar o endereço MAC de uma interface de rede
Gravar uma imagem ISO em um CD-RW
Zinxi - exibir informações do hardware
Instalação do winehq-staging e do Lutris em Debian 11 (Bullseye) para o Origin
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
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
Realizar overclock no Miyoo Mini (plus ou normal)
Otimização de memória para máquinas modestas
Unbuntu não atualiza o firmware [RESOLVIDO] (2)
linux mint reconhece microfone de lapela como fone de ouvido sem micro... (0)
Dúvidas sobre a originalidade de conteúdos online (10)
Erro de interface de Rede no Virt Manager dentro Debian 13 KDE (12)