Archiving and compression (Português) - ArchWiki

Jump to content
From ArchWiki
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[link quebrado: seção inválida]
- List of applications (Português)/Multimedia (Português)#Compressão de imagem[link quebrado: seção inválida]
- 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)

Hidden category:

- Pages with broken section links