Compac.sh (Versão CShell)
Publicado por Sandro Marcell 11/09/2007
[ Hits: 4.200 ]
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 para desligamento e reinicialização do computador s/precisar sair do KDE
Verificar badblocks em unidade de disco
MPlayer em modo texto com desligamento programado do sistema
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como fazer a conversão binária e aplicar as restrições no Linux
Como quebrar a senha de um servidor Linux Debian
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático









