Script simples para compactar e descompactar arquivos

Publicado por César... (última atualização em 29/09/2011)

[ Hits: 18.105 ]

Homepage: http://tecnopad.blogspot.com

Download 5162.script.sh




Com este script é possível compactar e descompactar arquivos, sendo necessário apenas que o usuário informe o diretório e o nome do arquivo, feito isto o script se encarrega de compactar/descompactar o arquivo para você.

  



Esconder código-fonte

#!/bin/bash
# Script simples para compactar e descompactar arquivos
# URL: www.vivaolinux.com.br/~cesar
# Data: 28/09/2011
# -----------------------------

main()
{
   clear
   echo "Menu de opcoes"
   echo ""
   echo "1. Compactar para .tar"
   echo "2. Compactar para .tar.gz"
   echo "3. Compactar para .bz2"
   echo "4. Descompactar .tar"
   echo "5. Descompactar .tar.gz"
   echo "6. Descompactar .bz2"
   echo "0. sair"
   echo ""
   echo -n "Sua opção: "
   read OPCAO
   case $OPCAO in 
      1) compactarTar;;
      2) compactarGz;;
      3) compactarBz2;;
      4) descompactarTar;;
      5) descompactarGz;;
      6) descompactarBz2;;
      0) exit;;
      *) echo "Opção inválida"; clear; main;;
   esac
}
compactarTar()
{
   clear
   echo -n "Digite o diretorio onde esta o arquivo:"
   read DIRETORIO
   echo -n "Digite o nome do arquivo: " 
   read ARQUIVO
   COMPACTAR="$DIRETORIO/$ARQUIVO"

   tar -cf $ARQUIVO.tar $COMPACTAR 2> /dev/null
   if [ $? -eq 0 ]; then
      echo "Arquivo compactado"
      sleep 2
      clear
   else
            echo "Arquivo não foi compactado"
            clear
        fi
main
}
compactarGz()
{
        clear
        echo -n "Digite o diretorio onde esta o arquivo:"
        read DIRETORIO
        echo -n "Digite o nome do arquivo: "
        read ARQUIVO
        COMPACTAR="$DIRETORIO/$ARQUIVO"

        tar -czf $ARQUIVO.tar.gz $COMPACTAR 2> /dev/null
        if [ $? -eq 0 ]; then
           echo "Arquivo compactado"
           sleep 2
           clear
        else
            echo "Arquivo não foi compactado"
            clear
        fi
main
}
compactarBz2()
{
        clear
        echo -n "Digite o diretorio onde esta o arquivo: "
        read DIRETORIO
        echo -n "Digite o nome do arquivo: "
        read ARQUIVO
        COMPACTAR="$DIRETORIO/$ARQUIVO"

        tar -cjf $ARQUIVO.bz2 $COMPACTAR 2> /dev/null
        if [ $? -eq 0 ]; then
           echo "Arquivo compactado"
           sleep 2
           clear
        else
            echo "Arquivo não foi compactado"
            clear
        fi
main
}
descompactarTar()
{
   clear
   echo -n "Digite o diretorio onde esta o arquivo: "
   read DIRETORIO
   echo -n "Digite o nome do arquivo.tar: "
   read ARQUIVO
   CAMINHO="$DIRETORIO/$ARQUIVO"
   tar -xf $CAMINHO
   if [ $? -eq 0 ]; then
     echo "Arquivo descompactado no diretorio corrente."
   else
     echo "Erro! arquivo não foi descompactado"
   fi
   sleep 2
   clear
   main
}   
descompactarGz()
{
        clear
        echo -n "Digite o diretorio onde esta o arquivo: "
        read DIRETORIO
        echo -n "Digite o nome do arquivo.tar: "
        read ARQUIVO
        CAMINHO="$DIRETORIO/$ARQUIVO"
        tar -xzf $CAMINHO
        if [ $? -eq 0 ]; then
          echo "Arquivo descompactado no diretorio corrente."
        else
          echo "Erro! arquivo não foi descompactado"
        fi
        sleep 2
        clear
        main
}

descompactarBz2()
{
        clear
        echo -n "Digite o diretorio onde esta o arquivo: "
        read DIRETORIO
        echo -n "Digite o nome do arquivo.tar: "
        read ARQUIVO
        CAMINHO="$DIRETORIO/$ARQUIVO"
        tar -xjf $CAMINHO
        if [ $? -eq 0 ]; then
          echo "Arquivo descompactado no diretorio corrente."
        else
          echo "Erro! arquivo não foi descompactado"
        fi
        sleep 2
        clear
        main
}
main

Scripts recomendados

Calendário Dialog (exemplo)

Conf da rede

Script para verificação do serviço do Apache (webserver) em sistemas Linux Ubun

Atualizar o sistema através de Shell Script (Debian, Ubuntu e devidados)

Lista-telefonica


  

Comentários
[1] Comentário enviado por ddamaral em 16/05/2012 - 08:00h

Fala Cezar!

Baixei seu código e está apresentando um erro logo na linha 7 :

script.sh: line 7: syntax error near unexpected token `
'162.script.sh: line 7: `main ()

Uso Debian, será problema com a Distro?

Obrigado pelo post.

Abs.

[2] Comentário enviado por ddamaral em 16/05/2012 - 08:23h

Oi Cezar!

Pode desconsiderar o comentário!

Copiei novamente o código e funcionou Blz.

Muito obrigado pelo script, esta precisando de um deste.

Valeu!

[3] Comentário enviado por removido em 05/03/2017 - 12:25h


O Script "Download 5162.script.sh" é útil só para servidores sem interface gráfica ou acesso remoto pelo SSH.

Com interface gráfica você informar o diretório onde esta o arquivo não é muito bom para QUESTÃO DE USABILIDADE.

Essa forma no link é mais inteligente funciona para arquivos rar e zip pode colocar outros tipos também.

https://www.vivaolinux.com.br/script/Descompactar-arquivos-RAR-e-ZIP-em-lote


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts