Archiving and compression (Português)

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:

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

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