Compac.sh (Versão CShell)
Publicado por Sandro Marcell 11/09/2007
[ Hits: 4.274 ]
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
Mostrando arquivos de forma diferente
Para quem é louco por linux mas não larga o windows por causa do PHP
Personalizar teclado, alterar função de uma tecla
Nenhum comentário foi encontrado.
SynapSeq - programa para estimular as ondas cerebrais
Por que seu __DIR__ falhou ou o "inferno" dos caminhos no PHP
Preparando-se para certificações da LPI através do LPI Lab
Migração de Arch Linux para repositórios CachyOS (Uso de Instruções v3 e v4)
As diferencas entre o clipboard comum e a selecao ativa
Arch Linux com repos do CachyOS para otimização ou usar Gentoo?
Ativando o modo Quake no XFCE4-Terminal
[Tutorial] Configurando Multimaster no Samba 4 AD (DC02) + Explicação de FSMO Roles
Abrir um arquivo URL pelo Clipper (2)
Como instalar Warsaw no Gentoo? (7)
Senhor Einstein tinha razão mesmo! [RESOLVIDO] (12)
Como insiro e excluo um elemento XML e JSON ao código Javascript (2)
Da pra formatar um netbook MGB e usar algum linux nele? É possível usa... (4)









