Compac.sh (Versão CShell)
Publicado por Sandro Marcell 11/09/2007
[ Hits: 3.978 ]
Homepage: http://sanmarcell.wordpress.com
Compacte/descompacte arquivos simultaneamente de forma rápida e prática, sem necessidade de parâmetros extras.
#!/bin/csh -f # # Compactando/descompactando arquivos simultaneamente # (Versão C Shell) # # Sandro Marcell (sandro_marcell@yahoo.com.br) # # Uso: nome_script arquivo1 ... [arquivoN] # Obs.: É possível o uso do metacaractere (*) # Modificando saída do comando 'echo': set echo_style = sysv # Checando parâmetros: if ($#argv == 0) echo "\e[1mUso: $0:t arquivo1 ... [arquivoN]\e[m" # Arquivo de log: set LOG = /tmp/$0:t-$user.log # Avisos: set AG = "\e[1mDescompactando...\e[m" set AG2 = "\e[1mCompactando...\e[m" set SUCESSO = "\e[1mArquivo descompactado!\e[m" set ERRO = "\e[1;5mErro! Mais detalhes em: $LOG\e[m" # Início do loop: foreach A ($argv) # Testes condicionais: if (! -e $A) then echo "\e[1;5mArquivo não encontrado.\e[m" continue else if (! -w $A) then echo "\e[1;5mSem permissão de acesso.\e[m" continue endif # Compactar ou descompactar? switch ($A) # Descompactando... case {*.tar.gz,*.tgz}: echo $AG ; sleep 1 tar -zxf $A >>&! $LOG # Testando código de retorno: if ($status == 0) then echo $SUCESSO else echo $ERRO endif breaksw case *.gz: echo $AG ; sleep 1 gunzip $A >>&! $LOG if ($status == 0) then echo $SUCESSO else echo $ERRO endif breaksw case {*.tar.bz2,*.tbz}: echo $AG ; sleep 1 tar -jxf $A >>&! $LOG if ($status == 0) then echo $SUCESSO else echo $ERRO endif breaksw case *.bz2: echo $AG ; sleep 1 bunzip2 $A >>&! $LOG if ($status == 0) then echo $SUCESSO else echo $ERRO endif breaksw default: # Compactando... # É arquivo ou diretório? if (-d $A) then echo $AG2 ; sleep 1 tar -czf $A.tar.gz $A >>&! $LOG if ($status == 0) then echo "\e[1mDiretório compactado!\e[m" else echo $ERRO endif else echo $AG2 ; sleep 1 gzip -f9 $A >>&! $LOG if ($status == 0) then echo "\e[1mArquivo compactado!\e[m" else echo $ERRO endif endif breaksw endsw end # Fim
Script com Case para e Excluir pastas
Redimensionar várias imagens ao mesmo tempo
ola_mundo.sh - Mostra a mensagem "Olá Mundo" na tela
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Função que recebe 20 números inteiros e retorna o 6° maior elemento do... (5)
Quero saber sobre os melhores aplicativos de office para usar em 2024 ... (6)
Toda vez que tento atualizar o clamav me deparo com erros ao atualizar... (3)