Compac.sh (Versão CShell)
Publicado por Sandro Marcell 11/09/2007
[ Hits: 4.035 ]
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
Verificando espaço de Disco usando Dialog
Montar e desmontar ISOs do Debian e adicionar CD/DVDs ao repositório
Exibir configurações de REDE de maneira amigavel.
Nenhum comentário foi encontrado.
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Descritores de Arquivos e Swappiness
Solução rápida para o problema do Network Manager conectar mas não navegar
Como instalar no Linux Jogos da Steam só para Windows
Instalando o Team Viewer no Debian Trixie - problema no Policykit
Montando e usando iso de um sistema dentro do outro (2)
Criar atalho para uma pasta na area de trabalho no Linux Mint? (0)
Precisa de ajuda com monitoramento ou problemas com Zabbix? (0)