Compac.sh (Versão CShell)
Publicado por Sandro Marcell 11/09/2007
[ Hits: 4.145 ]
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
Cálculo de Índice de Massa Corporal
Script para baixar pacotes no Debian e derivados.
Instalação Zabbix-agent Debian8
Backup Diario excluindo o antigo
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Instalação dualboot Windows 11 e Debian 13 (4)
Mint Xfce não mantém a conexão no wi-fi (0)
Programa fora de escala na tela do pc (36)
Eu queria adicionar a incon do wifi e deixa transparente no fluxbox no... (0)









