Compac.sh (Versão CShell)
Publicado por Sandro Marcell 11/09/2007
[ Hits: 4.165 ]
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
Soma múltiplos de 3 ou 5 abaixo de 1000
Script de iniciação do servidor Nagios no Slack
Limpar e resolver erros de arquivos trava no APT
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Estou tentando ser legalista, mas tá complicado! (0)
É normal não gostar de KDE? (17)
PERFIL CRIADO NO SAMBA AD DC NÃO LOGA NO WINDOWS 10 E 11 (1)
PERFIL CRIADO NO SAMBA AD DC NÃO LOGA NO WINDOWS 10 E 11 (1)









