Archiving and compression (Portuguê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. |
-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.
- dtrx — Uma ferramenta inteligente de extração de pacotes.
- unp — Ferramenta de linha de comando que pode extrair pacotes facilmente.
- unpack — Script wrapper para lidar com diversos formatos de pacotes.
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
- 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[link quebrado: package not found]
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.
- zlib — Biblioteca de compressão implementando o método de compactação deflate encontrado no gzip e no PKZIP.
- Zopfli — Compressor de arquivos de alta taxa de compressão do Google, usando um algoritmo compatível com deflação chamado zopfli.