# Archiving and compression (Português)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Status de tradução: Esse artigo é uma tradução de Archiving and compression. Data da última tradução: 2020-07-06. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

As ferramentas tradicionais de arquivamento e compactação (ou compressão) Unix são separadas de acordo com a filosofia Unix:

- Um arquivador ou empacotador de arquivo combina vários arquivos em um arquivo de pacote (p.ex., tar).
- Uma ferramenta compressão compacta ou descompacta dados (p.ex., gzip).

Essas ferramentas geralmente são usadas em sequência, criando primeiro um arquivo e, em seguida, compactando-o.

Claro que também existem ferramentas que fazem ambos, que tendem a oferecer adicionalmente criptografia, detecção de erro e recuperação.

## Arquivamento apenas

Nome | Pacote | Manuais | Descrição
--- | --- | --- | ---
GNU tar | tar | tar(1), info | Utilitário principal de manipulação de pacotes tar (tarballs) onipresentes, que são usados pelo pacman e pelo AUR.
libarchive | libarchive | bsdtar(1) bsdcpio(1) | Implementação de tar e cpio que também oferece uma biblioteca. Usado pelo pacman e mkinitcpio.
ar | binutils | ar(1) | Arquivador legado do Unix antes do tar. Hoje usado apenas para criar arquivos de biblioteca estática.
cpio | cpio | cpio(1) | Arquivador de arquivos via stdin/stdout, oferece suporte a formatos cpio e tar.
DAR | darAUR | dar(1) | Arquivador para fazer backup de sistemas de arquivos live grandes, lida com links absolutos, atributos estendidos, arquivos esparsos e tipos de nó-I.

Dica: O GNU tar e o BSD tar fazem automaticamente a delegação de descompactação para arquivos comprimidos bzip2, compress, gzip, lzip, lzma e xz. Ao criar arquivos, ambos oferecem suporte à opção `-a` para filtrar automaticamente o arquivo criado através do programa de compactação correto, com base na extensão do arquivo. Enquanto o BSD reconhece os formatos de compressão baseados no formato, o GNU tar adivinha apenas baseado na extensão do arquivo.

Veja #Uso para arquivamento apenas.

## Ferramentas de compressão

### Compressão apenas

Esses programas de compactação implementam seu próprio formato de arquivo.

Nome | Pacote | Manual | Ext | ext do Tar | Descrição | Implementações paralelas
--- | --- | --- | --- | --- | --- | ---
bzip2 | bzip2 | bzip2(1) | .bz2, .bz | .tbz2, .tbz | Usa o algoritmo Burrows–Wheeler. | lbzip2, pbzip2
gzip | gzip | gzip(1) | .gz, .z | .tgz, .taz | GNU zip, baseado no algoritmo DEFLATE. | pigz
lrzip | lrzip | lrzip(1) | .lrz |  | Versão melhorada do rzip, usa múltiplos algoritmos. | é multithreaded
LZ4 | lz4 | lz4(1) | .lz4 |  | Escrito em C, com foco na velocidade de compressão e descompressão. | é multithreaded
lzip | lzip | lzip(1) | .lz |  | Usa LZMA. | plzipAUR
lzop | lzop | lzop(1) | .lzop | .tzo | Usa a biblioteca LZO (lzo). |
xz | xz | xz(1) | .xz, .lzma | .txz, .tlz | Usa LZMA, padrão para arquivos de pacotes de GNU coreutils e de kernel. | pixz, pxz-gitAUR
zstd | zstd | zstd(1) | .zst |  | Usa o algoritmo Zstandard. | é multithreaded

- Implementações paralelas oferecem velocidades aprimoradas usando vários núcleos de CPU.
- Extensões de tar fazem referências a arquivos compactados em que o `tar` e a ferramenta de compactação são usados (p.ex., {ic|.tzo}} é `.tar.lzo`.
- Veja também #Uso para compressão apenas.

### Arquivamento e compressão

Nome | Pacotes | Manuais | Ext | Descrição
--- | --- | --- | --- | ---
7z | p7zip | 7z(1) | .7z | Porte POSIX da linha de comando do 7-zip. Veja p7zip.
RAR | rarAUR, unrar | rar(1) | .rar | Ambos formato e utilitário rar são proprietário.
ZIP | zip, unzip | zip(1), unzip(1) | .zip | Amplamente usado fora do mundo do Linux.
Unarchiver | unarchiver | unar(1), lsar(1) | many | Ferramenta de linha de comando de um aplicativo Mac, suporta mais de 40 formatos de pacote.
ZPAQ | zpaqAUR | zpaq(1) | .zpaq | Um arquivador de alta taxa de compactação escrito em C++, usa vários algoritmos.
LHa | lhasa, lhaAUR | lha(1) | .lzh (no Amiga: .lha) | Um arquivador de LZH/LHA, com suporte ao método lh7.

Veja também #Uso para arquivamento e compressão.

### Comparação de recursos

#### Descompressão

Nome | gzip | bzip2 | ZIP | LHa/LZH | compress | pack | CAB | ARJ
--- | --- | --- | --- | --- | --- | --- | --- | ---
gzip | Sim | Não | Sim | Não | Sim | Sim | Não | Não
p7zip | Sim | Sim | Sim | Sim | Não | Sim | Sim | Sim
unarchiver | Sim | Sim | Sim | Sim | Sim | Não | Sim | Parcial

## Comparação de uso

### Uso para arquivamento apenas

Nome | Criação de pacote | Extração de pacote | Listagem de conteúdo
--- | --- | --- | ---
tar(1) | `tar cfv pacote.tar arquivo1 arquivo2` | `tar xfv pacote.tar` | `tar -tvf pacote.tar`
cpio(1) | `ls arquivo1 arquivo2 | cpio -o > pacote.cpio` | `cpio -i -vd < pacote.cpio` | `cpio -t < pacote.cpio`

### Uso para compressão apenas

Nome | Compressão | Descompressão | Descompressão para stdout
--- | --- | --- | ---
bzip2(1) | `bzip2 arquivo` | `bzip2 -d arquivo.bz2` | `bzcat arquivo.bz2`
gzip(1) | `gzip arquivo` | `gzip -d arquivo.gz` | `zcat arquivo.gz`
lrzip(1) | `lrzip arquivo` `lrztar pasta` | `lrzip -d arquivo.lrz` `lrztar -d pasta.tar.lrz` | `lrzcat arquivo.lrz`
xz(1) | `xz arquivo` | `xz -d arquivo.xz` | `xzcat arquivo.xz`

### Uso para arquivamento e compressão

Nome | Compressão | Descompressão | Descompressão para stdout | Listagem de conteúdo
--- | --- | --- | --- | ---
7z(1) | `7z a pacote.7z arquivo1 arquivo2` | `7z x pacote.7z` | `7z e -so pacote.7z arquivo1` | `7z l pacote.7z`
rar(1) & unrar | `rar a pacote.rar arquivo1 arquivo2` | `rar x pacote.rar` | `rar p -inul pacote.rar arquivo1` | `rar l pacote.rar`
zip(1), unzip(1) | `zip pacote.zip arquivo1 arquivo2` | `unzip pacote.zip` | `unzip -p pacote.zip arquivo1` | `unzip -l pacote.zip`
lha(1) | `lha ao7 pacote.lzh arquivo1 arquivo2` | `lha x pacote.zip` |  | mínimo: `lha l pacote.zip` detalhado: `lha v pacote.zip`

## Ferramentas de conveniência

- atool — Script para gerenciar pacotes de vários tipos.

  https://www.nongnu.org/atool/ || atool

- dtrx — Uma ferramenta inteligente de extração de pacotes.

  https://github.com/brettcs/dtrx || dtrxAUR

- unp — Ferramenta de linha de comando que pode extrair pacotes facilmente.

  https://github.com/mitsuhiko/unp || python-unpAUR

- unpack — Script wrapper para lidar com diversos formatos de pacotes.

  https://github.com/githaff/unpack || unpack-gitAUR

- Bash/Functions#Extract

## Determinando o formato do pacote

Para extrair um pacote, seu formato de arquivo precisa ser determinado. Se o arquivo tiver o nome correto, você poderá deduzir seu formato a partir da extensão do arquivo.

Do contrário, você pode usar a ferramenta file, veja file(1).

## Ferramentas esotéricas, raras e obsoletas

Nome | Pacotes | Ext | Descrição
--- | --- | --- | ---
ARC | arcAUR | .arc, .ark | Foi muito popular durante os primeiros dias do BBS em conexão discada. Substituído pelo ZIP.
ARJ | arj | .arj | Um arquivador usado no DOS/Windows em meados dos anos 90. Este é um clone de código aberto.
compress | ncompress | .Z | O utilitário clássico de compressão unix que pode lidar com o antigo arquivo .Z.
PAR2 | par2cmdline | .par2 | Arquivador de paridade para maior integridade de dados. Veja também Parchive.
shar | sharutils | .shar | Cria arquivos de extração automática que são scripts de shell válidos.
Zoo | zooAUR | .zoo | Era mais popular no sistema operacional OpenVMS antes de o PKZIP se tornar popular.

## Compressão de mapeador de dispositivos

Há um trabalho sendo feito para integrar (ao projeto de kernel do Linux) o projeto VDO de código recentemente aberto, que fornece uma camada de mapeamento de dispositivos de deduplicação e compactação no interesse de aumentar a eficiência do armazenamento. Os seguintes pacotes estão disponíveis:

- vdo — Ferramentas de espaço do usuário para gerenciar volumes VDO

  https://github.com/dm-vdo/vdo || vdoAUR

- kvdo — Um par de módulos do kernel que fornecem conjuntos de armazenamento de bloco deduplicado e/ou compactado

  https://github.com/dm-vdo/kvdo || kvdo-dkmsAUR

## Bibliotecas de compressão

- Brotli — Algoritmo de compressão para fluxos de dados usando o algoritmo LZ77, codificação de Huffman e modelagem de contexto de segunda ordem.

  https://github.com/google/brotli || brotli

- zlib — Biblioteca de compressão implementando o método de compactação deflate encontrado no gzip e no PKZIP.

  https://www.zlib.net/ || zlib

- Zopfli — Compressor de arquivos de alta taxa de compressão do Google, usando um algoritmo compatível com deflação chamado zopfli.

  https://github.com/google/zopfli || zopfli-gitAUR

## Veja também

- List of applications (Português)/Utilities (Português)#Gerenciadores de arquivos
- List of applications (Português)/Multimedia (Português)#Compressão de imagem
- Wikipedia:Comparison of file archivers
- Wikipedia:List of archive formats
- Wikipedia:Comparison of archive formats

Categories:

- Data compression and archiving (Português)
- Command-line (Português)