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