Empacotamento e compressão de arquivos

Publicado por Rafael Roncaglia em 31/07/2012

[ Hits: 14.305 ]

 


Empacotamento e compressão de arquivos



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:
  1. Só é possível comprimir diretórios com conteúdo e que estão empacotados;
  2. 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];
  3. 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.
  4. 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!).
  5. 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.

Outras dicas deste autor

Redirecionadores

Leitura recomendada

FreeBSD - Configuração do RRDTool

O básico sobre "Load average"

Controle de banda com CBQ

Cada vez mais Linux

Corrigindo 'bug' em placa de Vídeo NVIDIA: segundo monitor não aparece disponível no Ubuntu 11.10

  

Comentários
[1] Comentário enviado por nickmarinho em 31/07/2012 - 11:09h

Po, esqueceu de comentar o eficiente 7zip, um dos de melhor compressão hoje em dia. Não?

=)


www.racaboxer.com.br

www.lucianomarinho.com.br


.

[2] Comentário enviado por rflnx em 31/07/2012 - 11:38h

Na verdade eu quis focar no gzip e bzip2 mesmo, porém eu ainda não utilizei o 7zip. mas vlw pela dica nos próximos irei acrescentar todas as ferramentas apenas para conhecimento.

[3] Comentário enviado por danniel-lara em 31/07/2012 - 12:03h

parabéns pela dica
também tem .xz de uma olhada
quem sabe tu não escreve um artigo com todos no futuro

Abraço


[4] Comentário enviado por leeNux em 22/09/2019 - 23:59h

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)?



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts