Compactação e Descompactação de Arquivos no Linux

Este é um artigo muito completo sobre tratamento de arquivos compactados que encontrei em um dos blogs que sempre acesso,o Sempre Update. Nele você entenderá tudo sobre todos os formatos de arquivos… deixo aqui minha opinião acerca da preferência pela compactação bz2, como ela não há, rápida e super forte.

Quando falamos em compactação e descompactação de arquivos dentro de sistemas Linux, geralmente pensamos em algo simples e que ninguém precisa saber, eis um grande engano. Um bom administrador de sistemas Linux precisa ter o conhecimento amplo, e este item é altamente recomendado, em especial quando vamos lidar apenas com terminal. Afinal, em alguns casos não haverá ambiente gráfico e para isso, é preciso ter ciência de como compactar ou descompactar os arquivos no Linux.

Quando o assunto é Linux temos vários tipos de arquivos, no entanto as mais famosas são gzip e bzip2 e assim, as extensões que serão exibidas seria respectivamente .gz e bz2. Dentre os dois tipos de arquivos que citamos, o bzip2 é a melhor opção quando o assunto é compressão de arquivos, ele consegue tornar os arquivos compactados menores do que se fosse usado o gzip, mas em caso de urgência saiba que o bzip2 demora um pouco para descompactar ou compactar.

Mas, antes de você sair por aí compactando tudo, saiba que grandes arquivos ou diretórios, precisam ser compactados com .tar e só assim podem ser compactados em gz ou gz2.

Arquivos .tar

Agora, vamos usar uma nomenclatura a qual pode ser estranho para alguns, seria empacotamento, o termo é usado para definir o ato de reunir vários arquivos tornando-os um, desde que seja um dentro do outro, que também é chamado de arquivo pacote. Geralmente este arquivo final possui o mesmo tamanho correspondente ao tamanho de cada arquivo unificado, ou empacotado.

Atualmente mesmo depois de tanto tempo, o utilitário mais usado ainda permanece o .tar.

Como empacotar usando o .tar

Por ser recursivo, o comando tar pode ser usado não só em aplicações, pode também empacotar os arquivos de um diretório inteiro. Seria basicamente o que acontece no supermercado, uma bandeja de ovos, carne e tantas outras coisas e inserimos todos deles dentro de uma sacola ou caixa, neste momento podemos usar o ato de juntar tudo em um único pacote de empacotamento.

Para empacotar usando o .tar veja como é simples. Digamos que você queira empacotar o diretório /opt então veja como ficaria a sintaxe do comando.

sudo tar cvf empacotamento_opt.tar /opt

E assim, o nosso empacotamento do diretório /opt terá o tamanho equivalente ao tamanho real de todos os arquivos ali contidos!

Como desempacotar usando o .tar

Sem muito o que explicar, o desempacotamento é parecido com o empacotamento, o comando é bem semelhante.

sudo tar xvf empacotamento_opt.tar

E aí você pode pensar que na sintaxe do comando é possível identificar o xvf e o cvf que aparecem na composição da sintaxe, mas vamos entender isso também.

  • c -> Especifica o arquivo ou diretório que será empacotado.
  • f -> Item obrigatório para manipular o arquivo, a letra “f” vem de file.
  • v -> Com o v o modo verbose é ativado, ou seja, você saberá tudo o que esta acontecendo, será exibido a saída do que esta sendo feito. Não é mais necessário usar o ‘-‘ para especificar as opções do TAR.
  • x -> É usado para extrair o arquivo ou diretório.

Compactando com compress, gzip e bzip2

Ao contrário do empacotamento, a compactação como o nome já diz serve comprimir os arquivos ou itens compactados, com a finalidade de diminuir o tamanho do arquivo, isso dar-se pelo fato de que a compactação atua sobre as sequências de bits repetidos e que estão presentes em um arquivo ou pacote.

Compactadores comuns e ainda muito utilizados são:

  • Compress
  • gzip
  • bzip2

Para começar vamos instalar o tão falado compress:

Para Ubuntu, Debian, Linux Mint:

sudo apt install ncompress

Para Fedora e derivados:

sudo dnf install ncompress
Nota: O nome do pacote geralmente é o mesmo para qualquer distribuição, por isso apenas citamos dois exemplos!

Identificado o resultado das compactações de cada compactador

Apesar de parecer redundante, e é, você precisa entender quando um arquivo é compactado com cada item.

  • Extensão .Z – Compactado com o compress
  • Extensão .gz – Compactado com gzip
  • Extensão .bz2 – Compactado com bzip2

E como compactar com o Compress, gzip e bzip 2?

Para compress execute:

compress -c aquivo > arquivo.Z

Para gzip execute:

gzip -c arquivo > arquivo.gz

Para bzip2 execute:

bzip2 -c arquivo > arquivo.bz2

E como descompactar com o Compress, gzip e bzip 2?

Para compress execute:

uncompress arquivo.Z

Para gzip execute:

gzip -d arquivo.gz

Para bzip2 execute:

bzip2 -dc arquivo.bz2 > arquivo

Compactando e empacotando ao mesmo tempo .tar.bz2 e .tar.gz

Vamos usar o exemplo do primeiro empacotamento que fizemos empacotamento_opt.tar

Com .tar.gz:

sudo tar czvf empacotamento_opt.tar.gz /opt

Com .tar.bz2:

sudo tar cjvf empacotamento_opt.tar.bz2 /opt

Descompactando e desempacotando ao mesmo tempo .tar.bz2 e .tar.gz

Com .tar.gz:

sudo tar xzvf empacotamento_opt.tar.gz

Com .tar.bz2:

sudo tar xjvf empacotamento_opt.tar.bz2

E para não ser diferente, vamos então entender as opções dos comandos que usamos como exemplos:

  • c -> Especifica o arquivo ou diretório que será empacotado.
  • f -> Item obrigatório para manipular o arquivo, a letra “f” vem de file.
  • v -> Com o v o modo verbose é ativado, ou seja, você saberá tudo o que esta acontecendo, será exibido a saída do que esta sendo feito. Não é mais necessário usar o ‘-‘ para especificar as opções do TAR.
  • x -> É usado para extrair o arquivo ou diretório.
  • Z -> Indica que será compactado com o compress
  • j -> Indica que será compactado com o bzip2

 

Fonte: Sempre Update .com.br