Antes de mergulhar nos gerenciadores de pacotes, é essencial entender o arquivamento e a compressão de arquivos. Ao baixar software online, você frequentemente o encontrará empacotado em formatos arquivados e compactados. Esta lição foca em duas utilidades fundamentais para esse propósito: tar e gzip.
Entendendo Arquivamento vs. Compressão
É importante distinguir entre arquivamento e compressão. Arquivamento é o processo de combinar múltiplos arquivos e diretórios em um único arquivo, conhecido como um arquivo (archive). Isso facilita o gerenciamento e a transferência de um grupo de arquivos. Compressão, por outro lado, é o processo de reduzir o tamanho de um arquivo para economizar espaço em disco e acelerar as transferências. A utilidade tar é usada para arquivamento, enquanto gzip é usada para compressão. Frequentemente, você verá gzip e tar usados em conjunto.
Compactando Arquivos Únicos com gzip
O programa gzip é usado para compactar arquivos individuais no Linux. Quando você compacta um arquivo com gzip, ele é substituído por um arquivo com a extensão .gz.
Para compactar um arquivo:
gzip meuarquivolegal
Isso criará meuarquivolegal.gz e removerá o original. Para descompactar o arquivo, você pode usar gunzip:
gunzip meuarquivolegal.gz
Criando Arquivos com tar
Embora o gzip seja ótimo para compressão, ele não consegue agrupar vários arquivos em um único arquivo. Para isso, usamos a utilidade tar (Tape Archive). Um arquivo criado com tar é frequentemente chamado de "tarball" e tem a extensão .tar.
Para criar um novo arquivo contendo múltiplos arquivos:
tar cvf meuarquivo.tar arquivo1 arquivo2 diretorio1
Vamos analisar as opções:
c: criar um novo arquivo.v: modo verboso, que lista os arquivos à medida que são processados.f: file (arquivo), que especifica que o próximo argumento é o nome do arquivo de arquivamento.
O Poder de tar e gzip Combinados
A verdadeira força vem do uso de tar e gzip em conjunto. Você pode primeiro criar um arquivo .tar e depois compactá-lo com gzip, resultando em um arquivo .tar.gz. No entanto, tar fornece uma maneira conveniente de lidar com a compressão tar em uma única etapa usando a opção z. Este processo é às vezes referido como a criação de um arquivo gzip tar.
Para criar um arquivo compactado, que é uma forma comum de compactar arquivos tar gz:
tar czvf meuarquivo.tar.gz arquivo1 arquivo2 diretorio1
Aqui, a opção z diz ao tar para usar o gzip para compressão.
Extraindo Arquivos tar e gzip
Para extrair arquivos de um arquivo, você usa a opção x.
Para extrair um arquivo .tar simples:
tar xvf meuarquivo.tar
Para descompactar e extrair um arquivo .tar.gz em um único comando, basta adicionar a opção z novamente:
tar xzvf meuarquivo.tar.gz
Vamos revisar as opções de extração:
x: extrair arquivos de um arquivo.z: Descompactar o arquivo usando gzip.v: modo verboso, listando arquivos à medida que são extraídos.f: file (arquivo), especificando o arquivo de arquivamento a ser extraído.
A mnemônica útil para isso é: eXtrair Zee Very Fast! (Extrair o Muito Rápido!)
tar é um comando tão essencial, mas frequentemente esquecido. xkcd relevante: https://xkcd.com/1168
Outras Utilidades
Embora tar e gzip sejam extremamente comuns, você encontrará outros formatos de arquivamento e compressão em sua jornada no Linux. Estes incluem bzip2 (que cria arquivos .bz2 e usa a flag j no tar), xz (criando arquivos .xz com a flag J), e as utilidades familiares zip/unzip. Cada um tem seu próprio conjunto de comandos e taxas de compressão, mas os conceitos subjacentes permanecem os mesmos.