Uma breve e clara definição à respeito de empacotamento e compressão de arquivos e os respectivos comandos que fazem
estas ações no nosso querido e idolatrado
GNU/Linux.
Empacotamento e compressão de arquivos
Antes de irmos direto aos comandos, devemos entender o que é empacotamento e compressão.
- Empacotamento - É a junção de diversos arquivos em um só, formando um pacote.
- Compressão de dados - É a redução do espaço ocupado por arquivos em um determinado dispositivo de armazenamento.
Embora possam parecer sinônimos, compressão e compactação de dados são processos distintos:
- A compressão reduz a quantidade de bits ocupada por um arquivo;
- A compactação tem a função de unir dados que não estejam unidos. Um exemplo clássico de compactação de dados é a
desfragmentação de discos.
Estas duas ações podem, ou não, ser utilizadas juntas, mas é comum em processos de backup empacotar e em seguida
comprimir este pacote, como veremos a seguir.
Ferramenta para empacotamento no GNU/Linux
tar - ferramenta que faz o empacotamento de arquivos. A extensão gerada pelo
tar é a ".tar"
Sintaxe: tar [opções] <caminho/nome.extensãodopacote> <arquivos>
- c = Cria um arquivo tar
- x = Extrai arquivos de um pacote tar
- r = Adiciona arquivos a um pacote tar (apenas em pacotes não comprimidos)
- t = Exibe o conteúdo de um pacote tar
- v = Verbose
- z = Comprime ou extrai arquivos .tar.gzip
- j = Comprime ou extrai arquivos .tar.bzip2
- f = Especifica o arquivo tar a ser usado
- C = Define o diretório onde os arquivos do pacote serão extraídos.
Observações:
- Só é possível comprimir diretórios com conteúdo e que estão empacotados;
- Sintaxe para extrair: tar -xvf [pacote] ou, caso eu queira extrair apenas um arquivo do pacote: tar [-xvf] <pacote>
<arquivo> e, caso eu queira especificar o local onde eu quero extrair basta adicionar: –C [localparaextrair];
- Só é possível comprimir com as opções 'z' e 'j' do tar no momento da criação do pacote. As opções 'z' e 'j'
fazem uma chamada externa aos comandos gzip e bzip2 (vistos a seguir), que irão comprimir o
pacote 'tar', gerando a extensão ".tar.gz", ou ".tar.bz2", automaticamente ao nome do arquivo.
- No momento da criação do pacote 'tar' é preciso especificar a extensão do pacote, caso você queira que ela apareça no
nome do arquivos, apenas para facilitar a identificação, lembrando que o GNU/Linux não diferencia a extensão do arquivo
simplesmente pelo nome, caso eu tenha um arquivo de texto e der à ele o nome de texto.mp3 ele continuará sendo um arquivo
ASCII text (ou seja texto!).
- Existe ainda o empacotador cpio, porém não é muito utilizado.
Ferramentas
gzip
- Ferramenta que faz a compressão de arquivos, demora menos e comprime menos.
- Sintaxe: gzip <arquivo>
- A extensão gerada pelo gzip é a ".gz".
gunzip
- Faz a descompressão de arquivos comprimidos pelo gzip.
- Sintaxe: gunzip <arquivo.gz>
bzip2
- Ferramenta que faz a compressão de arquivos, demora mais e comprime mais.
- A extensão gerada pelo bzip2 é a ".bz2".
- Sintaxe: bzip2 <arquivo>
bunzip2
- Faz a descompressão de arquivos comprimidos pelo bzip2.
- Sintaxe: bunzip2 <arquivo.bz2>
Observações: Como dito anteriormente, não é possível comprimir um pacote com o comando
tar depois de já tê-
lo criado, portanto, para esta ação basta utilizar um dos dois compressores acima.
É isso aí, vlw.
Então compactação e empacotamento seriam sinônimos (por unir arquivos), sendo, ao mesmo tempo, diferentes de compressão (que reduz a quantidade de bits)?