Pular para o conteúdo

Script simples para compactar e descompactar arquivos

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ê.
César... cesar
Hits: 19.104 Categoria: Shell Script Subcategoria: Introdução
  • Download
  • Nova versão
  • Indicar
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Descrição

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ê.
Download 5162.script.sh Enviar nova versão
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Samba - Instalação e configuração

Formatar o terminal com cores e efeitos

Utilidades do Sistema

zsh: Cliff random number generator

Dialog, script de configuração de rede

#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

Entre na sua conta para comentar.