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.
Entendendo a compactação e descompactação de arquivos no Linux
Quando o assunto é Linux temos vários tipos de arquivos. No entanto os mais famosos 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. Porém, em caso de urgência saiba que o bzip2 demora um pouco para descompactar ou compactar.
Contudo, antes de você sair por aí compactando tudo, saiba que grandes arquivos ou diretórios, precisam ser compactados com .tar. Só assim podem ser compactados em gz ou gz2.
Arquivos .tar
Agora, vamos usar uma nomenclatura que pode soar estranho para alguns: o 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
Como instalar o compress no Ubuntu, Debian, Linux Mint, Fedora e derivados!
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
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 compactar como compress execute:
compress -c aquivo > arquivo.Z
Para compactar arquivos como gzip execute:
gzip -c arquivo > arquivo.gz
Para compactar arquivos como bzip2 execute:
bzip2 -c arquivo > arquivo.bz2
E como descompactar com o Compress, gzip e bzip 2?
Para descompactar o formato Z do compress execute:
uncompress arquivo.Z
Para descompactar gzip execute o comando:
gzip -d arquivo.gz
Para descompactar 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
Compactando e empacotando com .tar.gz:
sudo tar czvf empacotamento_opt.tar.gz /opt
Compactando e empacotando com .tar.bz2:
sudo tar cjvf empacotamento_opt.tar.bz2 /opt
Descompactando e desempacotando ao mesmo tempo .tar.bz2 e .tar.gz
Descompactando e desempacotando com .tar.gz:
sudo tar xzvf empacotamento_opt.tar.gz
Descompactando e desempacotando 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
Neste capítulo do curso de Administração de Sistemas Linux, observamos a compactação de arquivos, descompactação e também o empacotamento. No próximo capítulo vamos dar continuidade ao assunto.