você está aqui: Home  → Arquivo de Mensagens

Função para extração de arquivos compactados

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 02 de fevereiro de 2015

Existem diversos aplicativos para compactação de arquivos. Para cada um deles, o usuário precisa se lembrar da sintaxe e de outros detalhes, para conseguir descompactar os arquivos com sucesso.

Os comandos tar e gzip/gunzip, normalmente são instalados por padrão. Já para outros formatos é preciso instalar o software correspondente, como por exemplo, zip/unzip, rar/unrar, etc.

Para simplificar o processo de descompactação, podemos criar uma função, que realiza a descompactação de forma automatizada, sem a necessidade de nos lembrarmos de sua sintaxe.

Eu dei a este script um nome bem simples e sugestivo, apenas "x", de eXtract. Não se esqueça, para tudo funcionar, todos os programas devem ser instalados previamente. Mas podem chamar também de extract.sh.

  #!/bin/bash
  # function Extract for common file formats
  
  function extract {
   if [ -z "$1" ]; then
      # display usage if no parameters given
      echo "Usage: extract <path/file_name>.<zip|rar|bz2|gz|tar|tbz2|tgz|Z|7z|xz|ex|tar.bz2|tar.gz|tar.xz>"
   else
      if [ -f "$1" ] ; then
          # NAME=${1%.*}
          # mkdir $NAME && cd $NAME
          case "$1" in
            *.tar.bz2)   tar xvjf ../"$1"    ;;
            *.tar.gz)    tar xvzf ../"$1"    ;;
            *.tar.xz)    tar xvJf ../"$1"    ;;
            *.lzma)      unlzma ../"$1"      ;;
            *.bz2)       bunzip2 ../"$1"     ;;
            *.rar)       unrar x -ad ../"$1" ;;
            *.gz)        gunzip ../"$1"      ;;
            *.tar)       tar xvf ../"$1"     ;;
            *.tbz2)      tar xvjf ../"$1"    ;;
            *.tgz)       tar xvzf ../"$1"    ;;
            *.zip)       unzip ../"$1"       ;;
            *.Z)         uncompress ../"$1"  ;;
            *.7z)        7z x ../"$1"        ;;
            *.xz)        unxz ../"$1"        ;;
            *.exe)       cabextract ../"$1"  ;;
            *)           echo "extract: '$1' - unknown archive method" ;;
          esac
      else
          echo "'$1' - file does not exist"
      fi
  fi
  }
  
  extract $1

Download do código

A função é de autoria de Vitalii Tereshchuk.



 

 

Veja a relação completa dos artigos de Rubens Queiroz de Almeida

Opinião dos Leitores

José Paulo
02 Fev 2015, 08:30
Script muito prático!

Só uma pequena observação, do jeito que o script está apresentado, as 2 linhas que identificam e criam um diretório para a descompactação está comentada, assim o script irá falhar.
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script