Compac.sh (Versão CShell)
Publicado por Sandro Marcell 11/09/2007
[ Hits: 4.211 ]
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
Remoção da sessão convidado do Ubuntu 16.04
Nenhum comentário foi encontrado.
librePods: liberte seus AirPods em 2026
Bluefin - A nova geração de ambientes de trabalho Linux
Como atualizar sua versão estável do Debian
Instalando e definindo as novas fontes Adwaita no GNOME
Configurar aviso da temperatura da CPU no Conky
Pós-instalação do elementary OS 8.1
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
archlinux resolução abaixou após atualização [RESOLVIDO] (19)
Após todos esses anos... youtube! (0)
Conky não mostra temperaturas da CPU no notebook (14)
Registro do 'last&qu... errado [RESOLVIDO] (9)
O WiFi não reconhece minha rede depois que o processo de suspensão é r... (2)









