XZ Utils - XZ Utils

XZ Utils
Autor (es) original (is) Lasse Collin
Desenvolvedor (s) O Projeto Tukaani
Versão estável
5.2.5 / 17 de março de 2020 ( 2020-03-17 )
Repositório Edite isso no Wikidata
Escrito em C
Sistema operacional Plataforma cruzada
Modelo Compressão de dados
Licença Domínio público . (mas veja os detalhes em Desenvolvimento e adoção )
Local na rede Internet tukaani .org / xz /

XZ Utils (anteriormente LZMA Utils ) é um conjunto de compactadores de dados sem perda de linha de comando de software livre , incluindo lzma e xz, para sistemas operacionais do tipo Unix e, da versão 5.0 em diante, Microsoft Windows .

Na maioria dos casos, xz atinge taxas de compactação mais altas do que alternativas como gzip e bzip2 . A velocidade de descompressão é mais rápida que bzip2, mas mais lenta que gzip. A compactação pode ser muito mais lenta do que o gzip e é mais lenta do que o bzip2 para altos níveis de compactação e é mais útil quando um arquivo compactado é usado muitas vezes.

XZ Utils consiste em dois componentes principais:

Existem vários atalhos de comando, como lzma(para xz --format=lzma), unxz(para xz --decompress; análogo a gunzip) e xzcat(para unxz --stdout; análogo a zcat)

O XZ Utils pode compactar e descompactar os formatos de arquivo xz e lzma , mas como o formato LZMA agora é legado , o XZ Utils é compactado por padrão em xz.

Uso

Tanto o comportamento do software quanto as propriedades do formato do arquivo foram projetados para funcionar de forma semelhante às ferramentas de compactação do Unix populares gzip e bzip2 . Ele consiste em uma porta Unix do LZMA- SDK de Igor Pavlov que foi adaptada para se encaixar perfeitamente em ambientes Unix e em sua estrutura e comportamento usuais.

xz oferece suporte à compactação multithread (com a -Tbandeira) desde 2014, versão 5.2.0 .; em 2019, a descompressão encadeada ainda não foi implementada. O número de threads pode ser menor do que o definido se o arquivo não for grande o suficiente para threading com as configurações fornecidas ou se o uso de mais threads exceder o limite de uso de memória.

Assim como gzip e bzip, xz e lzma só podem compactar arquivos únicos (ou fluxos de dados) como entrada. Eles não podem agrupar vários arquivos em um único arquivo - para fazer isso, um programa de arquivamento é usado primeiro, como o tar .

Compactando um arquivo:

xz   my_archive.tar    # results in my_archive.tar.xz
lzma my_archive.tar    # results in my_archive.tar.lzma

Descompactando o arquivo:

unxz    my_archive.tar.xz      # results in my_archive.tar
unlzma  my_archive.tar.lzma    # results in my_archive.tar

A versão 1.22 ou superior da implementação GNU de tar tem suporte transparente para tarballs compactados com lzma e xz, usando os switches --xz ou -Jpara compactação xz e --lzmapara compactação LZMA.

Criando um arquivo e compactando-o:

tar -c --xz   -f my_archive.tar.xz   /some_directory    # results in my_archive.tar.xz
tar -c --lzma -f my_archive.tar.lzma /some_directory    # results in my_archive.tar.lzma

Descompactando o arquivo e extraindo seu conteúdo:

tar -x --xz   -f my_archive.tar.xz      # results in /some_directory
tar -x --lzma -f my_archive.tar.lzma    # results in /some_directory

Exemplo de tar com uma única letra para arquivar com compactar e descompactar com extrair usando o sufixo curto :

tar cJf keep.txz keep   # archive then compress the directory ./keep/ into the file ./keep.txz
tar xJf keep.txz        # decompress then extract the file ./keep.txz creating the directory ./keep/

O formato xz

O formato xz melhora o lzma, permitindo filtros de pré-processamento. Os filtros exatos usados ​​são semelhantes aos usados ​​no 7z , já que os filtros do 7z estão disponíveis no domínio público por meio do SDK do LZMA.

Desenvolvimento e adoção

O desenvolvimento do XZ Utils ocorreu dentro do Projeto Tukaani, liderado por Mike Kezner, por um pequeno grupo de desenvolvedores que antes mantinha uma distribuição Linux baseada no Slackware .

Todo o código-fonte de xz e liblzma foi lançado em domínio público . A distribuição de origem do XZ Utils inclui adicionalmente alguns scripts opcionais e um programa de exemplo que está sujeito a várias versões da GPL .

Especificamente, a lista completa de scripts GPL e fontes distribuídas com o software XZ Utils inclui:

  • Uma implementação opcional de uma função libc comum, getopt ( GNU GPL v2 e GNU LGPL v2.1 )
  • Um script m4 para detecção de pthread ( GNU GPL v3 )
  • Alguns scripts de wrapper não essenciais (xzgrep, etc) ( GNU GPL v2 )
  • E o programa de exemplo scanlzma, que não está integrado com o sistema de compilação

Os binários xz e liblzma de software resultantes são de domínio público, a menos que a implementação LGPL getopt opcional seja incorporada.

Binários estão disponíveis para FreeBSD , sistemas Linux , Microsoft Windows e FreeDOS . Várias distribuições de Linux , incluindo Fedora , Slackware , Ubuntu e Debian, usam xz para compactar seus pacotes de software. O Arch Linux usava anteriormente o xz para compactar pacotes, mas a partir de 27 de dezembro de 2019, os pacotes são compactados com compactação Zstandard . O arquivo GNU FTP também usa xz.

Referências

links externos