Provided by: xz-utils_5.8.1-1build1_amd64 bug

NOME

       xz, unxz, xzcat, lzma, unlzma, lzcat - Compacta ou descompacta arquivos .xz e .lzma

SINOPSE

       xz [opção...] [arquivo...]

COMANDOS APELIDOS

       unxz é equivalente a  xz --decompress.
       xzcat é equivalente a  xz --decompress --stdout.
       lzma é equivalente a  xz --format=lzma.
       unlzma é equivalente a  xz --format=lzma --decompress.
       lzcat é equivalente a  xz --format=lzma --decompress --stdout.

       Ao  escrever  scripts  que  precisam  descompactar  arquivos, é recomendável sempre usar o nome xz com os
       argumentos apropriados (xz -d ou xz -dc) em vez dos nomes unxz e xzcat.

DESCRIÇÃO

       xz é uma ferramenta de compactação de dados de uso geral com sintaxe de linha de  comando  semelhante  ao
       gzip(1)  e ao bzip2(1). O formato de arquivo nativo é o formato .xz, mas o formato legado .lzma usado por
       LZMA Utils e fluxos compactados brutos sem cabeçalhos de formato de contêiner também são suportados. Além
       disso, a descompactação do formato .lz usado por lzip é suportada.

       xz compacta ou descompacta cada arquivo de acordo com o modo de operação selecionado. Se  nenhum  arquivo
       for  fornecido ou arquivo for -, xz lê da entrada padrão e grava os dados processados na saída padrão. xz
       recusará (exibirá um erro e ignorará o arquivo) para gravar dados compactados na saída padrão se  for  um
       terminal. Da mesma forma, xz se recusará a ler dados compactados da entrada padrão se for um terminal.

       A  menos  que  --stdout  seja especificado, arquivos diferentes de - são gravados em um novo arquivo cujo
       nome é derivado do nome arquivo de origem:

       •  Ao compactar, o sufixo do formato de arquivo de destino (.xz ou .lzma) é anexado ao nome do arquivo de
          origem para obter o nome do arquivo de destino.

       •  Ao descompactar, o sufixo .xz, .lzma ou .lz é removido do nome do arquivo para obter o nome do arquivo
          de destino. xz também reconhece os sufixos .txz e .tlz e os substitui pelo sufixo .tar.

       Se o arquivo de destino já existir, um erro será exibido e arquivo será ignorado.

       A menos que grave na saída padrão, xz exibirá um aviso e pulará o arquivo se qualquer um dos seguintes se
       aplicar:

       •  Arquivo não é um arquivo normal. Links simbólicos não são seguidos e, portanto, não  são  considerados
          arquivos comuns.

       •  Arquivo tem mais de um link físico.

       •  File tem setuid, setgid ou sticky bit definido.

       •  O  modo de operação está definido para compactar e o arquivo já possui um sufixo do formato de arquivo
          de destino (.xz ou .txz ao compactar para o formato .xz e .lzma  ou .tlz ao compactar para  o  formato
          .lzma).

       •  O  modo  de  operação  está  definido para descompactar e o arquivo não possui um sufixo de nenhum dos
          formatos de arquivo suportados (.xz, .txz, .lzma, .tlz , ou .lz).

       Depois de compactar ou descompactar com êxito o arquivo, o xz copia o dono, grupo, permissões, horário de
       acesso e horário de modificação do arquivo de origem para o arquivo de  destino.  Se  a  cópia  do  grupo
       falhar,  as  permissões serão modificadas para que o arquivo de destino não se torne acessível a usuários
       que não têm permissão para acessar o arquivo de origem. xz ainda não oferece suporte à  cópia  de  outros
       metadados, como listas de controle de acesso ou atributos estendidos.

       Depois  que  o  arquivo  de destino for fechado com êxito, o arquivo de origem será removido, a menos que
       --keep tenha sido especificado. O arquivo de origem nunca é removido se a  saída  for  gravada  na  saída
       padrão ou se ocorrer um erro.

       O envio de SIGINFO ou SIGUSR1 para o processo do xz faz com que ele imprima informações de andamento para
       erro  padrão.  Isso  tem uso limitado, pois quando o erro padrão é um terminal, usar --verbose exibirá um
       indicador de progresso de atualização automática.

   Uso de memória
       O uso de memória de xz varia de  algumas  centenas  de  kilobytes  a  vários  gigabytes,  dependendo  das
       configurações de compactação. As configurações usadas ao compactar um arquivo determinam os requisitos de
       memória  do  descompactador. Normalmente, o descompactador precisa de 5 % a 20 % da quantidade de memória
       que o compactador precisou ao criar o arquivo. Por exemplo, descompactar um  arquivo  criado  com  xz  -9
       atualmente  requer  65 MiB  de  memória.  Ainda  assim,  é  possível ter arquivos .xz que requerem vários
       gigabytes de memória para descompactar.

       Especialmente os usuários de sistemas mais antigos podem  achar  irritante  a  possibilidade  de  uso  de
       memória  muito  grande. Para evitar surpresas desconfortáveis, o xz possui um limitador de uso de memória
       embutido, que está desabilitado por padrão. Embora alguns  sistemas  operacionais  forneçam  maneiras  de
       limitar  o  uso  de  memória  dos  processos, confiar nele não foi considerado flexível o suficiente (por
       exemplo, usar ulimit(1) para limitar a memória virtual tende a prejudicar mmap(2)).

       O limitador de uso de memória pode ser ativado  com  a  opção  de  linha  de  comando  --memlimit=limite.
       Geralmente  é  mais  conveniente  habilitar  o  limitador  por  padrão  definindo  a variável de ambiente
       XZ_DEFAULTS, por exemplo, XZ_DEFAULTS=--memlimit=150MiB. É possível definir os limites separadamente para
       compactação e descompactação usando --memlimit-compress=limite e --memlimit-decompress=limite. Usar essas
       duas opções fora de XZ_DEFAULTS raramente é  útil  porque  uma  única  execução  de  xz  não  pode  fazer
       compactação  e  descompactação  e --memlimit=limite (ou -M limite ) é mais curto para digitar na linha de
       comando.

       Se o limite de uso de memória especificado for excedido durante a descompactação, xz exibirá um erro e  a
       descompactação  do arquivo falhará. Se o limite for excedido durante a compactação, xz tentará reduzir as
       configurações para que o limite não seja mais excedido (exceto  ao  usar  --format=raw  ou  --no-adjust).
       Dessa  forma, a operação não falhará, a menos que o limite seja muito pequeno. A escala das configurações
       é feita em etapas que não correspondem às predefinições do nível de compactação, por exemplo, se o limite
       for apenas um pouco menor que o valor necessário para xz -9, as configurações serão reduzidas  apenas  um
       pouco , não até xz -8.

   Concatenação e preenchimento com arquivos .xz
       É  possível concatenar arquivos .xz como estão. xz irá descompactar tais arquivos como se fossem um único
       arquivo .xz.

       É possível inserir preenchimento entre as partes concatenadas ou após a  última  parte.  O  preenchimento
       deve  consistir  em  bytes  nulos e o tamanho do preenchimento deve ser um múltiplo de quatro bytes. Isso
       pode ser útil, por exemplo, se o arquivo .xz for armazenado em uma mídia que mede tamanhos de arquivo  em
       blocos de 512 bytes.

       Concatenação e preenchimento não são permitidos com arquivos .lzma ou fluxos brutos.

OPÇÕES

   Sufixos inteiros e valores especiais
       Na  maioria dos lugares onde um argumento inteiro é esperado, um sufixo opcional é suportado para indicar
       facilmente números inteiros grandes. Não deve haver espaço entre o número inteiro e o sufixo.

       KiB    Multiplica o inteiro por 1.024 (2^10). Ki, k, kB, K e KB são aceitos como sinônimos de KiB.

       MiB    Multiplica o número inteiro por 1.048.576 (2^20). Mi, m, M e MB são aceitos como sinônimos de MiB.

       GiB    Multiplica o número inteiro por 1.073.741.824 (2^30). Gi, g, G e GB são aceitos como sinônimos  de
              GiB.

       O valor especial max pode ser usado para indicar o valor inteiro máximo suportado pela opção.

   Modo de operação
       Se várias opções de modo de operação forem dadas, a última entrará em vigor.

       -z, --compress
              Compacta. Este é o modo de operação padrão quando nenhuma opção de modo de operação é especificada
              e  nenhum  outro  modo de operação está implícito no nome do comando (por exemplo, unxz implica em
              --decompress).

              After successful compression, the source file is removed unless  writing  to  standard  output  or
              --keep was specified.

       -d, --decompress, --uncompress
              Decompress.  After successful decompression, the source file is removed unless writing to standard
              output or --keep was specified.

       -t, --test
              Testa  a  integridade  de  arquivos  compactados. Esta opção é equivalente a --decompress --stdout
              exceto que os dados descompactados são descartados em vez  de  serem  gravados  na  saída  padrão.
              Nenhum arquivo é criado ou removido.

       -l, --list
              Imprime  informações  sobre arquivos compactados. Nenhuma saída descompactada é produzida e nenhum
              arquivo é criado ou removido. No modo de lista, o programa não pode ler os  dados  compactados  da
              entrada padrão ou de outras fontes não pesquisáveis.

              A  listagem  padrão  mostra  informações  básicas sobre arquivos, um arquivo por linha. Para obter
              informações mais detalhadas, use também a opção --verbose. Para obter ainda mais informações,  use
              --verbose  duas  vezes,  mas  observe  que  isso pode ser lento, porque obter todas as informações
              extras requer muitas buscas.  A  largura  da  saída  detalhada  excede  80  caracteres,  portanto,
              canalizar  a saída para, por exemplo, less -S pode ser conveniente se o terminal não tiver largura
              o suficiente.

              A saída exata pode variar entre versões xz  e  localidades  diferentes.  Para  saída  legível  por
              máquina, --robot --list deve ser usado.

   Modificadores de operação
       -k, --keep
              Não exclui os arquivos de entrada.

              Desde  xz 5.2.6, esta opção também faz xz compactar ou descompactar mesmo se a entrada for um link
              simbólico para um arquivo comum, tiver mais de um link físico ou tiver o setuid, setgid ou  sticky
              bit  definir.  Os  bits  setuid,  setgid  e sticky não são copiados para o arquivo de destino. Nas
              versões anteriores, isso era feito apenas com --force.

       -f, --force
              Esta opção tem vários efeitos:

              •  Se o arquivo de destino já existir, o exclui antes de compactar ou descompactar.

              •  Compacta ou descompacta, mesmo que a entrada seja um link simbólico  para  um  arquivo  normal,
                 tenha  mais  de  um link físico ou tenha setuid, setgid ou sticky bit definido. Os bits setuid,
                 setgid e sticky não são copiados para o arquivo de destino.

              •  Quando usado com --decompress --stdout e xz não  consegue  reconhecer  o  tipo  do  arquivo  de
                 origem,  copia  o  arquivo  de origem como está na saída padrão. Isso permite que xzcat --force
                 seja usado como cat(1) para arquivos que não foram compactados com xz. Observe que, no  futuro,
                 o  xz  pode oferecer suporte a novos formatos de arquivo compactado, o que pode fazer com que o
                 xz  descompacte  mais  tipos  de  arquivos  em  vez  de  copiá-los  como   na   saída   padrão.
                 --format=formato pode ser usado para restringir xz para descompactar apenas um único formato de
                 arquivo.

       -c, --stdout, --to-stdout
              Grava os dados compactados ou descompactados na saída padrão em vez de em um arquivo. Isso implica
              em --keep.

       --single-stream
              Descompacta  apenas  o  primeiro  fluxo de .xz e ignora silenciosamente possíveis dados de entrada
              restantes após o fluxo. Normalmente, esse restante posterior sem uso faz com que xz exiba um erro.

              xz nunca descompacta mais de um fluxo de arquivos .lzma ou fluxos brutos, mas esta opção ainda faz
              xz ignorar os possíveis dados posteriores após o arquivo .lzma ou fluxo bruto.

              Esta opção não tem efeito se o modo de operação não for --decompress ou --test.

              Since xz 5.7.1alpha, --single-stream implies --keep.

       --no-sparse
              Desativa a criação de arquivos esparsos. Por padrão, ao descompactar  em  um  arquivo  normal,  xz
              tenta  tornar  o  arquivo esparso se os dados descompactados contiverem longas sequências de zeros
              binários. Ele também funciona ao gravar na saída padrão, desde que a saída padrão esteja conectada
              a um arquivo normal e certas condições adicionais sejam atendidas para torná-la segura. A  criação
              de  arquivos  esparsos  pode  economizar  espaço em disco e acelerar a descompactação, reduzindo a
              quantidade de E/S do disco.

       -S .suf, --suffix=.suf
              Ao compactar, usa .suf como sufixo para o arquivo de destino em  vez  de  .xz  ou  .lzma.  Se  não
              estiver  gravando  na  saída  padrão  e  o arquivo de origem já tiver o sufixo .suf, um aviso será
              exibido e o arquivo será ignorado.

              Ao descompactar, reconhece arquivos com o sufixo .suf além de arquivos com  o  sufixo  .xz,  .txz,
              .lzma, .tlz ou .lz . Se o arquivo de origem tiver o sufixo .suf, o sufixo será removido para obter
              o nome do arquivo de destino.

              Ao  compactar ou descompactar fluxos brutos (--format=raw), o sufixo sempre deve ser especificado,
              a menos que seja gravado na saída padrão, porque não há sufixo padrão para fluxos brutos.

       --files[=arquivo]
              Lê os nomes dos arquivos a serem processados em arquivo; se arquivo  for  omitido,  os  nomes  dos
              arquivos serão lidos da entrada padrão. Os nomes de arquivo devem terminar com o caractere de nova
              linha.  Um traço (-) é considerado um nome de arquivo regular; não significa entrada padrão. Se os
              nomes de arquivo forem  fornecidos  também  como  argumentos  de  linha  de  comando,  eles  serão
              processados antes da leitura dos nomes de arquivo de arquivo.

       --files0[=arquivo]
              Isso  é  idêntico  a  --files[=arquivo], exceto que cada nome de arquivo deve ser finalizado com o
              caractere nulo.

   Opções básicas de formato de arquivo e de compactação
       -F formato, --format=formato
              Especifica o formato de arquivo para compactar ou descompactar:

              auto   Este é o padrão. Ao compactar, auto é equivalente a  xz.  Ao  descompactar,  o  formato  do
                     arquivo  de  entrada é detectado automaticamente. Observe que os fluxos brutos (criados com
                     --format=raw) não podem ser detectados automaticamente.

              xz     Compacta no formato de arquivo .xz ou aceite apenas arquivos .xz ao descompactar.

              lzma, alone
                     Compacta  no  formato  de  arquivo  legado  .lzma  ou  aceite  apenas  arquivos  .lzma   ao
                     descompactar.  O  nome  alternativo  alone  é  fornecido  para  compatibilidade com versões
                     anteriores do LZMA Utils.

              lzip   Aceita apenas arquivos .lz ao descompactar. Sem suporte a compactação.

                     O formato .lz versão 0 e a versão não estendida 1 são suportados. Os arquivos da  versão  0
                     foram  produzidos  por  lzip 1.3 e anteriores. Esses arquivos não são comuns, mas podem ser
                     encontrados em arquivos compactados, pois alguns pacotes de  origem  foram  lançados  nesse
                     formato.  As pessoas também podem ter arquivos pessoais antigos neste formato. O suporte de
                     descompactação para o formato versão 0 foi removido em lzip 1.18.

                     lzip 1.4 e posteriores criam arquivos no formato  versão  1.  A  extensão  do  marcador  de
                     descarga de sincronização para o formato versão 1 foi adicionada em lzip 1.6. Esta extensão
                     raramente é usada e não é suportada por xz (diagnosticada como entrada corrompida).

              raw    Compacta ou descompacta um fluxo bruto (sem cabeçalhos). Isso é destinado apenas a usuários
                     avançados.  Para  decodificar  fluxos  brutos, você precisa usar --format=raw e especificar
                     explicitamente a cadeia de filtros, que normalmente  seria  armazenada  nos  cabeçalhos  do
                     contêiner.

       -C verificação, --check=verificação
              Especifica  o  tipo  de  verificação  de integridade. A verificação é calculada a partir dos dados
              descompactados e armazenados no arquivo .xz. Esta opção tem efeito somente ao compactar no formato
              .xz; o formato .lzma  não  oferece  suporte  a  verificações  de  integridade.  A  verificação  de
              integridade (se for o caso) é verificada quando o arquivo .xz é descompactado.

              Tipos de verificação suportados:

              none   Não  calcula  uma verificação de integridade. Isso geralmente é uma má ideia. Pode ser útil
                     quando a integridade dos dados é verificada por outros meios.

              crc32  Calcula CRC32 usando o polinômio do IEEE-802.3 (Ethernet).

              crc64  Calcula CRC64 usando o polinômio de ECMA-182. Este é o padrão, pois é um pouco melhor que o
                     CRC32 na detecção de arquivos danificados e a diferença de velocidade é insignificante.

              sha256 Calcula SHA-256. Isso é um pouco mais lento do que CRC32 e CRC64.

              A integridade dos cabeçalhos de .xz é sempre verificada com CRC32. Não  é  possível  alterá-la  ou
              desativá-la.

       --ignore-check
              Não  confere  a verificação de integridade dos dados compactados ao descompactar. Os valores CRC32
              nos cabeçalhos .xz ainda serão conferidos normalmente.

              Não use esta opção a menos que saiba o que está fazendo. Possíveis razões para usar esta opção:

              •  Tentativa de recuperar dados de um arquivo .xz corrompido.

              •  Acelerar a descompactação. Isso  é  importante  principalmente  com  SHA-256  ou  com  arquivos
                 extremamente  bem compactados. É recomendável não usar essa opção para essa finalidade, a menos
                 que a integridade do arquivo seja verificada externamente de alguma outra forma.

       -0 ... -9
              Seleciona um nível de predefinição de compactação. O padrão é -6. Se vários níveis de predefinição
              forem especificados, o  último  terá  efeito.  Se  uma  cadeia  de  filtro  personalizada  já  foi
              especificada,  especificar  um  nível  de  predefinição  de  compactação  limpa a cadeia de filtro
              personalizada.

              As diferenças entre as predefinições são mais significativas do que com  gzip(1)  e  bzip2(1).  As
              configurações  de  compactação selecionadas determinam os requisitos de memória do descompactador,
              portanto, usar um nível de predefinição muito alto pode dificultar a descompactação do arquivo  em
              um  sistema antigo com pouca RAM. Especificamente, não é uma boa ideia usar cegamente -9 para tudo
              como costuma acontecer com gzip(1) e bzip2(1).

              -0 ... -3
                     Estas são predefinições um tanto rápidas. -0 às vezes é mais rápida que gzip  -9  ao  mesmo
                     tempo  que  compacta  muito  melhor.  As mais altas geralmente têm velocidade comparável ao
                     bzip2(1) com taxa de compactação comparável ou melhor, embora os resultados dependam  muito
                     do tipo de dados que estão sendo compactados.

              -4 ... -6
                     Compactação  boa  a  muito  boa, mantendo o uso de memória do descompactador razoável mesmo
                     para sistemas antigos. -6 é o padrão, que geralmente é  uma  boa  escolha  para  distribuir
                     arquivos que precisam ser descompactáveis, mesmo em sistemas com apenas 16 MiB de RAM. (-5e
                     ou -6e também vale a pena considerar. Veja --extreme.)

              -7 ... -9
                     Eles  são  como -6, mas com requisitos de memória de compressor e descompressor mais altos.
                     Eles  são  úteis  apenas  ao  compactar  arquivos  maiores  que  8 MiB,  16 MiB  e  32 MiB,
                     respectivamente.

              No  mesmo  hardware, a velocidade de descompactação é aproximadamente um número constante de bytes
              de dados compactados por segundo. Em outras palavras, quanto melhor  a  compactação,  mais  rápida
              será  a  descompactação.  Isso também significa que a quantidade de saída não compactada produzida
              por segundo pode variar muito.

              A tabela a seguir resume os recursos das predefinições:

                     Predefinição   DicTam    CompCPU   CompMem   DecMem
                          -0        256 KiB      0        3 MiB    1 MiB
                          -1          1 MiB      1        9 MiB    2 MiB
                          -2          2 MiB      2       17 MiB    3 MiB
                          -3          4 MiB      3       32 MiB    5 MiB
                          -4          4 MiB      4       48 MiB    5 MiB
                          -5          8 MiB      5       94 MiB    9 MiB
                          -6          8 MiB      6       94 MiB    9 MiB
                          -7         16 MiB      6      186 MiB   17 MiB
                          -8         32 MiB      6      370 MiB   33 MiB
                          -9         64 MiB      6      674 MiB   65 MiB

              Descrições das colunas:

              •  DicTam é o tamanho do dicionário LZMA2. É desperdício de memória usar um dicionário maior que o
                 tamanho do arquivo descompactado. É por isso que é bom evitar usar as predefinições -7  ...  -9
                 quando  não  há  real necessidade deles. Em -6 e inferior, a quantidade de memória desperdiçada
                 geralmente é baixa o suficiente para não importar.

              •  CompCPU é uma representação simplificada das configurações LZMA2 que  afetam  a  velocidade  de
                 compactação. O tamanho do dicionário também afeta a velocidade, portanto, embora o CompCPU seja
                 o  mesmo  para  os níveis -6 ... -9, níveis mais altos ainda tendem a ser um pouco mais lentos.
                 Para obter uma compactação ainda mais lenta e possivelmente melhor, consulte --extreme.

              •  CompMem contains the compressor memory requirements in the single-threaded mode.  It  may  vary
                 slightly between xz versions.

              •  DecMem  contém  os  requisitos  de  memória  do  descompactador.  Ou  seja, as configurações de
                 compactação determinam os requisitos de memória do descompactador. O uso exato  da  memória  do
                 descompactador  é um pouco maior do que o tamanho do dicionário LZMA2, mas os valores na tabela
                 foram arredondados para o próximo MiB completo.

              Memory requirements of  the  multi-threaded  mode  are  significantly  higher  than  that  of  the
              single-threaded mode.  With the default value of --block-size, each thread needs 3*3*DictSize plus
              CompMem or DecMem.  For example, four threads with preset -6 needs 660–670 MiB of memory.

       -e, --extreme
              Usa  uma  variante mais lenta do nível de predefinição de compactação selecionado (-0 ... -9) para
              obter uma taxa de compactação um pouco melhor, mas, com azar, isso também pode piorar.  O  uso  da
              memória  do  descompressor não é afetado, mas o uso da memória do compactador aumenta um pouco nos
              níveis de predefinição -0 ... -3.

              Como existem duas predefinições com tamanhos de dicionário 4 MiB e 8 MiB, as predefinições  -3e  e
              -5e usam configurações um pouco mais rápidas (CompCPU inferior) do que -4e e -6e, respectivamente.
              Dessa forma, não há duas predefinições idênticas.

                     Predefinição   DicTam    CompCPU   CompMem   DecMem
                         -0e        256 KiB      8        4 MiB    1 MiB
                         -1e          1 MiB      8       13 MiB    2 MiB
                         -2e          2 MiB      8       25 MiB    3 MiB
                         -3e          4 MiB      7       48 MiB    5 MiB
                         -4e          4 MiB      8       48 MiB    5 MiB
                         -5e          8 MiB      7       94 MiB    9 MiB
                         -6e          8 MiB      8       94 MiB    9 MiB
                         -7e         16 MiB      8      186 MiB   17 MiB
                         -8e         32 MiB      8      370 MiB   33 MiB
                         -9e         64 MiB      8      674 MiB   65 MiB

              Por  exemplo,  há um total de quatro predefinições que usam o dicionário 8 MiB, cuja ordem do mais
              rápido ao mais lento é -5, -6, -5e e -6e.

       --fast
       --best Esses são apelidos um tanto enganosos para -0 e -9, respectivamente. Eles  são  fornecidos  apenas
              para compatibilidade com versões anteriores do LZMA Utils. Evite usar essas opções.

       --block-size=tamanho
              Ao  compactar para o formato .xz, divida os dados de entrada em blocos de tamanho bytes. Os blocos
              são compactados independentemente uns dos outros, o que ajuda no multi-threading e torna  possível
              a  descompactação  limitada  de acesso aleatório. Essa opção normalmente é usada para substituir o
              tamanho de bloco padrão no modo multi-thread, mas também pode ser usada em thread única.

              In multi-threaded mode about three times size bytes will be allocated in each thread for buffering
              input and output.  The default size is three times the LZMA2 dictionary size or 1  MiB,  whichever
              is  more.  Typically a good value is 2–4 times the size of the LZMA2 dictionary or at least 1 MiB.
              Using size less than the LZMA2 dictionary size is waste of RAM because then the  LZMA2  dictionary
              buffer  will  never get fully used.  In multi-threaded mode, the sizes of the blocks are stored in
              the block headers.  This size information is required for multi-threaded decompression.

              In single-threaded mode no block splitting is done by default.  Setting this option doesn't affect
              memory  usage.   No  size  information  is  stored  in  block  headers,  thus  files  created   in
              single-threaded mode won't be identical to files created in multi-threaded mode.  The lack of size
              information also means that xz won't be able decompress the files in multi-threaded mode.

       --block-list=items
              When  compressing  to the .xz format, start a new block with an optional custom filter chain after
              the given intervals of uncompressed data.

              The items are a comma-separated list.  Each item consists  of  an  optional  filter  chain  number
              between  0  and  9 followed by a colon (:)  and a required size of uncompressed data.  Omitting an
              item (two or more consecutive commas) is a shorthand to use the size and filters of  the  previous
              item.

              If  the  input  file is bigger than the sum of the sizes in items, the last item is repeated until
              the end of the file.  A special value of 0 may be used as the last size to indicate that the  rest
              of the file should be encoded as a single block.

              An   alternative   filter  chain  for  each  block  can  be  specified  in  combination  with  the
              --filters1=filters ... --filters9=filters options.  These options define  filter  chains  with  an
              identifier between 1–9.  Filter chain 0 can be used to refer to the default filter chain, which is
              the  same  as  not  specifying a filter chain.  The filter chain identifier can be used before the
              uncompressed   size,   followed   by   a   colon   (:).    For   example,   if    one    specifies
              --block-list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB then blocks will be created using:

              •  The filter chain specified by --filters1 and 2 MiB input

              •  The filter chain specified by --filters3 and 2 MiB input

              •  The filter chain specified by --filters2 and 4 MiB input

              •  The filter chain specified by --filters2 and 4 MiB input

              •  The default filter chain and 2 MiB input

              •  The default filter chain and 4 MiB input for every block until end of input.

              If  one  specifies  a  size  that  exceeds  the  encoder's block size (either the default value in
              threaded mode or the value specified with --block-size=size), the encoder will  create  additional
              blocks  while  keeping  the  boundaries  specified  in  items.   For  example,  if  one  specifies
              --block-size=10MiB --block-list=5MiB,10MiB,8MiB,12MiB,24MiB and the input file is 80 MiB, one will
              get 11 blocks: 5, 10, 8, 10, 2, 10, 10, 4, 10, 10, and 1 MiB.

              No modo multi-thread, os tamanhos dos blocos são armazenados nos cabeçalhos dos blocos. Isso não é
              feito no modo de thread  única,  portanto,  a  saída  codificada  não  será  idêntica  à  do  modo
              multi-thread.

       --flush-timeout=tempo_limite
              Ao compactar, se mais de tempo_limite milissegundos (um número inteiro positivo) se passaram desde
              a  liberação  anterior  e  a  leitura  de  mais entrada seria bloqueada, todos os dados de entrada
              pendentes serão liberados do codificador e disponibilizados no fluxo de saída. Isso pode ser  útil
              se  xz  for  usado  para  compactar dados transmitidos por uma rede. Valores tempo_limite pequenos
              tornam os  dados  disponíveis  na  extremidade  receptora  com  um  pequeno  atraso,  mas  valores
              tempo_limite grandes oferecem melhor taxa de compactação.

              Esse  recurso  está  desabilitado  por  padrão.  Se esta opção for especificada mais de uma vez, a
              última terá  efeito.  O  valor  especial  tempo_limite  de  0  pode  ser  usado  para  desabilitar
              explicitamente esse recurso.

              Este recurso não está disponível em sistemas não-POSIX.

              Este  recurso  ainda  é  experimental.  Atualmente, xz não é adequado para descompactar o fluxo em
              tempo real devido à forma como xz faz o buffer.

       --no-sync
              Do not synchronize the target file and its directory to the storage  device  before  removing  the
              source  file.   This  can  improve  performance  if compressing or decompressing many small files.
              However, if the system crashes soon after the deletion, it is possible that the  target  file  was
              not written to the storage device but the delete operation was.  In that case neither the original
              source file nor the target file is available.

              This  option  has  an  effect  only  when  xz  is going to remove the source file.  In other cases
              synchronization is never done.

              The synchronization and --no-sync were added in xz 5.7.1alpha.

       --memlimit-compress=limite
              Define um limite de uso de memória para compactação. Se esta opção for especificada várias  vezes,
              a última entrará em vigor.

              Se  as  configurações  de compactação excederem o limite, xz tentará ajustar as configurações para
              baixo para que o limite não seja mais excedido e exibirá um aviso de que o ajuste  automático  foi
              feito.  Os  ajustes são feitos nesta ordem: reduzindo o número de encadeamentos, alternando para o
              modo sigle-thread se até mesmo uma thread no modo multi-thread exceder  o  limite  e,  finalmente,
              reduzindo o tamanho do dicionário LZMA2.

              Ao  compactar  com  --format=raw  ou  se  --no-adjust  tiver sido especificado, apenas o número de
              threads pode ser reduzido, pois isso pode ser feito sem afetar a saída compactada.

              Se o limite não puder ser alcançado mesmo com os ajustes descritos acima, um erro será  exibido  e
              xz sairá com status de saída 1.

              O limite pode ser especificado de várias maneiras:

              •  O  limite  pode  ser um valor absoluto em bytes. Usar um sufixo inteiro como MiB pode ser útil.
                 Exemplo: --memlimit-compress=80MiB

              •  O limite pode ser especificado como uma porcentagem da memória física total  (RAM).  Isso  pode
                 ser  útil  especialmente  ao  definir  a  variável  de  ambiente  XZ_DEFAULTS  em  um script de
                 inicialização de shell que é compartilhado entre diferentes computadores. Dessa forma o  limite
                 é automaticamente maior em sistemas com mais memória. Exemplo: --memlimit-compress=70%

              •  O  limite  pode  ser  redefinido  para  seu  valor padrão, definindo-o como 0. Atualmente, isso
                 equivale a definir limite como max (sem limite de uso de memória).

              Para xz de 32 bits, há um caso especial: se o  limite  estiver  acima  de  4020 MiB,  o  limite  é
              definido  como  4020 MiB.  No  MIPS32  2000 MiB  é usado em seu lugar. (Os valores 0 e max não são
              afetados por isso. Um recurso semelhante não existe  para  descompactação.)  Isso  pode  ser  útil
              quando  um  executável  de  32  bits  tem  acesso  a espaço de endereço de 4 GiB (2 GiB no MIPS32)
              enquanto espero não causar danos em outras situações.

              Consulte também a seção Uso de memória.

       --memlimit-decompress=limite
              Define um limite de uso de memória para descompactação. Isso também afeta  o  modo  --list.  Se  a
              operação  não  for possível sem exceder o limite, xz exibirá um erro e a descompactação do arquivo
              falhará. Consulte --memlimit-compress=limite para possíveis maneiras de especificar o limite.

       --memlimit-mt-decompress=limite
              Define um limite de uso de memória para descompactação multi-thread. Isso  pode  afetar  apenas  o
              número  de  threads; isso nunca fará com que xz se recuse a descompactar um arquivo. Se limite for
              muito baixo para permitir qualquer multi-thread, o limite será ignorado e xz continuará no modo de
              thread única. Observe que se --memlimit-decompress também for usado, ele sempre  se  aplicará  aos
              modos de thread única e multi-thread e, portanto, o limite efetivo para multi-threading nunca será
              maior que o limite definido com --memlimit-decompress.

              Em contraste com as outras opções de limite de uso de memória, --memlimit-mt-decompress=limite tem
              um padrão limite específico do sistema. xz --info-memory pode ser usado para ver o valor atual.

              Esta opção e seu valor padrão existem porque, sem qualquer limite, o descompactador usando threads
              pode  acabar alocando uma quantidade insana de memória com alguns arquivos de entrada. Se o limite
              padrão for muito baixo em seu sistema, sinta-se à  vontade  para  aumentar  o  limite,  mas  nunca
              defina-o  para  um valor maior que a quantidade de RAM utilizável, pois com os arquivos de entrada
              apropriados xz tentará usar essa quantidade de memória mesmo com um baixo número de threads. Ficar
              sem memória ou trocar não melhorará o desempenho da descompactação.

              Consulte --memlimit-compress=limite para possíveis  maneiras  de  especificar  o  limite.  Definir
              limite como 0 redefine limite para o valor padrão específico do sistema.

       -M limite, --memlimit=limite, --memory=limite
              Isso   é   equivalente   a   especificar  --memlimit-compress=limite  --memlimit-decompress=limite
              --memlimit-mt-decompress=limite.

       --no-adjust
              Exibe um erro e saia se o limite de  uso  de  memória  não  puder  ser  atendido  sem  ajustar  as
              configurações  que  afetam a saída compactada. Ou seja, isso evita que xz alterne o codificador do
              modo multi-thread para o modo encadeado único e reduza o tamanho do dicionário LZMA2. Mesmo quando
              esta opção é usada, o número de threads pode ser  reduzido  para  atender  ao  limite  de  uso  de
              memória, pois isso não afetará a saída compactada.

              O ajuste automático é sempre desativado ao criar fluxos brutos (--format=raw).

       -T threads, --threads=threads
              Especifica  o número de threads de trabalho a serem usados. Definir threads para um valor especial
              0 faz com que xz use tantos threads quanto o(s) processador(es) no suporte do  sistema.  O  número
              real  de  encadeamentos  pode  ser  menor  que  threads  se  o arquivo de entrada não for grande o
              suficiente para subdividir em threads com as configurações fornecidas ou se o uso de mais  threads
              exceder o limite de uso de memória.

              Os compactadores usando thread única e várias threads produzem saídas diferentes. O compactador de
              thread  única  fornecerá  o  menor tamanho de arquivo, mas apenas a saída do compactador de várias
              threads pode ser descompactada usando várias threads. Definir threads  como  1  usará  o  modo  de
              thread única. Definir threads para qualquer outro valor, incluindo 0, usará o compressor de várias
              threads,  mesmo que o sistema tenha suporte a apenas uma thread de hardware. (xz 5.2.x usou o modo
              de thread única nesta situação.)

              Para usar o modo de várias threads com apenas uma thread, defina threads como +1. O prefixo +  não
              tem  efeito  com valores diferentes de 1. Um limite de uso de memória ainda pode fazer xz alternar
              para o modo de thread única, a menos que --no-adjust seja usado. O suporte para o  prefixo  +  foi
              adicionado no xz 5.4.0.

              Se  um  número  automático  de  threads  foi  solicitado  e  nenhum  limite  de uso de memória foi
              especificado, um limite flexível padrão  específico  do  sistema  será  usado  para  possivelmente
              limitar  o  número  de  threads.  É um limite flexível no sentido de que é ignorado se o número de
              threads se tornar um, portanto, um limite flexível nunca impedirá xz de compactar ou descompactar.
              Este limite flexível padrão não fará com que xz alterne do modo de várias threads para o  modo  de
              thread única. Os limites ativos podem ser vistos com xz --info-memory.

              Atualmente,   o  único  método  de  threading  é  dividir  a  entrada  em  blocos  e  comprimi-los
              independentemente um do outro. O tamanho padrão do bloco depende do nível de  compactação  e  pode
              ser substituído com a opção --block-size=tamanho.

              A  descompactação  em threads funciona apenas em arquivos que contêm vários blocos com informações
              de tamanho nos cabeçalhos dos blocos. Todos os arquivos grandes o suficiente compactados  no  modo
              de  várias thread atendem a essa condição, mas os arquivos compactados no modo de thread única não
              atendem, mesmo se --block-size=tamanho tiver sido usado.

              The default value for threads is 0.  In xz 5.4.x and older the default is 1.

   Cadeias de filtro de compressor personalizadas
       Uma cadeia de filtro personalizada permite especificar as configurações de compactação  em  detalhes,  em
       vez de confiar nas configurações associadas às predefinições. Quando uma cadeia de filtro personalizada é
       especificada,  as  opções  predefinidas  (-0  ...  -9  e  --extreme)  anteriores  na linha de comando são
       esquecidas. Se uma opção predefinida for especificada após uma  ou  mais  opções  de  cadeia  de  filtros
       personalizados,  a  nova  predefinição  entrará  em vigor e as opções de cadeia de filtros personalizados
       especificadas anteriormente serão esquecidas.

       Uma cadeia de filtro é comparável à tubulação na linha de comando. Ao compactar, a entrada  descompactada
       vai  para o primeiro filtro, cuja saída vai para o próximo filtro (se houver). A saída do último filtro é
       gravada no arquivo compactado. O número máximo de filtros na cadeia é quatro, mas normalmente uma  cadeia
       de filtros tem apenas um ou dois filtros.

       Muitos filtros têm limitações sobre onde podem estar na cadeia de filtros: alguns filtros podem funcionar
       apenas  como  o  último  filtro  na  cadeia,  alguns  apenas como filtro não-último e alguns funcionam em
       qualquer posição na cadeia. Dependendo do filtro, essa limitação é  inerente  ao  projeto  do  filtro  ou
       existe para evitar problemas de segurança.

       A  custom  filter  chain  can  be  specified  in  two  different ways.  The options --filters=filters and
       --filters1=filters ... --filters9=filters allow specifying an entire filter chain in one option using the
       liblzma filter string syntax.  Alternatively, a filter chain can  be  specified  by  using  one  or  more
       individual  filter  options  in the order they are wanted in the filter chain.  That is, the order of the
       individual filter options is significant! When decoding raw streams (--format=raw), the filter chain must
       be specified in the same order as it was specified when compressing.  Any  individual  filter  or  preset
       options  specified  before  the  full  chain  option  (--filters=filters)  will be forgotten.  Individual
       filters specified after the full chain option will reset the filter chain.

       Both the full and individual filter options take  filter-specific  options  as  a  comma-separated  list.
       Extra  commas  in  options  are  ignored.  Every option has a default value, so specify those you want to
       change.

       Para ver toda a cadeia de filtros e opções, use xz -vv (isto é, use --verbose duas  vezes).  Isso  também
       funciona para visualizar as opções da cadeia de filtros usadas pelas predefinições.

       --filters=filters
              Specify  the  full  filter  chain or a preset in a single option.  Each filter can be separated by
              spaces or two dashes (--).  filters may need to be quoted on the  shell  command  line  so  it  is
              parsed  as a single option.  To denote options, use : or =.  A preset can be prefixed with a - and
              followed with zero or more flags.  The only supported flag is e  to  apply  the  same  options  as
              --extreme.

       --filters1=filters ... --filters9=filters
              Specify up to nine additional filter chains that can be used with --block-list.

              For  example,  when  compressing  an  archive  with  executable  files followed by text files, the
              executable part could use a filter chain with a BCJ filter  and  the  text  part  only  the  LZMA2
              filter.

       --filters-help
              Display a help message describing how to specify presets and custom filter chains in the --filters
              and --filters1=filters ... --filters9=filters options, and exit successfully.

       --lzma1[=opções]
       --lzma2[=opções]
              Adiciona o filtro LZMA1 ou LZMA2 à cadeia de filtros. Esses filtros podem ser usados apenas como o
              último filtro na cadeia.

              LZMA1 é um filtro legado, que é suportado quase exclusivamente devido ao formato de arquivo legado
              .lzma,  que  suporta  apenas  LZMA1.  LZMA2  é uma versão atualizada do LZMA1 para corrigir alguns
              problemas práticos do LZMA1. O formato .xz  usa  LZMA2  e  não  suporta  LZMA1.  A  velocidade  de
              compactação e as proporções de LZMA1 e LZMA2 são praticamente as mesmas.

              LZMA1 e LZMA2 compartilham o mesmo conjunto de opções:

              preset=predefinição
                     Redefine  todas  as opções de LZMA1 ou LZMA2 para predefinição. Predefinição consiste em um
                     número inteiro, que pode ser seguido por modificadores de predefinição de uma única  letra.
                     O  inteiro  pode  ser  de  0 a 9, correspondendo às opções de linha de comando -0 ... -9. O
                     único modificador suportado atualmente é e, que corresponde a --extreme. Se  nenhum  preset
                     for especificado, os valores padrão das opções LZMA1 ou LZMA2 serão obtidos da predefinição
                     6.

              dict=tamanho
                     O  tamanho  do  dicionário  (buffer  de  histórico)  indica  quantos  bytes  dos  dados não
                     compactados processados recentemente são mantidos na memória. O algoritmo  tenta  encontrar
                     sequências  de bytes repetidos (correspondências) nos dados não compactados e substituí-los
                     por referências aos dados atualmente no dicionário. Quanto  maior  o  dicionário,  maior  a
                     chance de encontrar uma correspondência. Portanto, aumentar o dicionário tamanho geralmente
                     melhora  a  taxa  de compactação, mas um dicionário maior que o arquivo não compactado é um
                     desperdício de memória.

                     Um tamanho de dicionário típico é de 64 KiB a 64 MiB. O  mínimo  é  4 KiB.  O  máximo  para
                     compactação  é  atualmente  1,5 GiB  (1536 MiB).  O  descompactador  já  oferece  suporte a
                     dicionários de até um byte a menos de 4 GiB, que é o máximo para os formatos de fluxo LZMA1
                     e LZMA2.

                     O tamanho de dicionário e o localizador de correspondência (mf) juntos determinam o uso  de
                     memória  do  codificador  LZMA1  ou  LZMA2.  O  mesmo  (ou  maior)  tamanho de dicionário é
                     necessário para descompactar que foi usado  durante  a  compactação,  portanto,  o  uso  de
                     memória  do  decodificador  é  determinado  pelo  tamanho  do  dicionário  usado  durante a
                     compactação. Os cabeçalhos .xz armazenam o tamanho de dicionário como 2^n ou 2^n + 2^(n-1),
                     então esses tamanhos são um  tanto  preferidos  para  compactação.  Outros  tamanhos  serão
                     arredondados quando armazenados nos cabeçalhos .xz.

              lc=lc  Especifica  o  número de bits de contexto literais. O mínimo é 0 e o máximo é 4; o padrão é
                     3. Além disso, a soma de lc e lp não deve exceder 4.

                     Todos os bytes que não podem ser codificados como  correspondências  são  codificados  como
                     literais. Ou seja, literais são simplesmente bytes de 8 bits que são codificados um de cada
                     vez.

                     A  codificação  literal assume que os bits lc mais altos do byte não compactado anterior se
                     correlacionam com o próximo byte. Por exemplo, em um texto  típico  em  inglês,  uma  letra
                     maiúscula  geralmente é seguida por uma letra minúscula, e uma letra minúscula geralmente é
                     seguida por outra letra minúscula. No conjunto de caracteres US-ASCII, os  três  bits  mais
                     altos  são  010 para letras maiúsculas e 011 para letras minúsculas. Quando lc é pelo menos
                     3, a codificação literal pode aproveitar essa propriedade nos dados não compactados.

                     O valor padrão (3) geralmente é bom. Se você deseja compactação máxima,  experimente  lc=4.
                     Às vezes ajuda um pouco, às vezes piora a compactação. Se piorar, experimente lc=2 também.

              lp=lp  Especifica o número de bits de posição literal. O mínimo é 0 e o máximo é 4; o padrão é 0.

                     Lp  afeta  que  tipo  de  alinhamento  nos  dados  não  compactados é assumido ao codificar
                     literais. Consulte pb abaixo para obter mais informações sobre alinhamento.

              pb=pb  Especifica o número de bits de posição. O mínimo é 0 e o máximo é 4; o padrão é 2.

                     Pb afeta que tipo de alinhamento nos dados não compactados é assumido em  geral.  O  padrão
                     significa alinhamento de quatro bytes (2^pb=2^2=4), que geralmente é uma boa escolha quando
                     não há melhor estimativa.

                     Quando  o alinhamento é conhecido, definir pb adequadamente pode reduzir um pouco o tamanho
                     do arquivo. Por exemplo, com arquivos de  texto  com  alinhamento  de  um  byte  (US-ASCII,
                     ISO-8859-*,  UTF-8),  a  configuração pb=0 pode melhorar um pouco a compactação. Para texto
                     UTF-16, pb=1 é uma boa escolha. Se o alinhamento for um número ímpar  como  3  bytes,  pb=0
                     pode ser a melhor escolha.

                     Embora o alinhamento assumido possa ser ajustado com pb e lp, LZMA1 e LZMA2 ainda favorecem
                     ligeiramente o alinhamento de 16 bytes. Pode valer a pena levar em consideração ao projetar
                     formatos de arquivo que provavelmente serão compactados com LZMA1 ou LZMA2.

              mf=mf  O localizador de correspondência tem um efeito importante na velocidade do codificador, uso
                     de  memória e taxa de compactação. Normalmente, os localizadores de correspondência de Hash
                     Chain são mais rápidos do que os localizadores de  correspondência  de  árvore  binária.  O
                     padrão depende do predefinição: 0 usa hc3, 1–3 usa hc4 e o resto usa bt4.

                     Os seguintes localizadores de correspondência são suportados. As fórmulas de uso de memória
                     abaixo são aproximações aproximadas, que estão mais próximas da realidade quando dict é uma
                     potência de dois.

                     hc3    Cadeia de hashs com hashing de 2 e 3 bytes
                            Valor mínimo para nice: 3
                            Uso de memória:
                            dict * 7.5 (if dict <= 16 MiB);
                            dict * 5.5 + 64 MiB (if dict > 16 MiB)

                     hc4    Cadeia de hashs com hashing de 2, 3 e 4 bytes
                            Valor mínimo para nice: 4
                            Uso de memória:
                            dict * 7.5 (if dict <= 32 MiB);
                            dict * 6.5 (if dict > 32 MiB)

                     bt2    Árvore binária com hashing de 2 bytes
                            Valor mínimo para nice: 2
                            Uso de memória: dict * 9.5

                     bt3    Árvore binária com hashing de 2 e 3 bytes
                            Valor mínimo para nice: 3
                            Uso de memória:
                            dict * 11.5 (if dict <= 16 MiB);
                            dict * 9.5 + 64 MiB (if dict > 16 MiB)

                     bt4    Árvore binária com hashing de 2, 3 e 4 bytes
                            Valor mínimo para nice: 4
                            Uso de memória:
                            dict * 11.5 (if dict <= 32 MiB);
                            dict * 10.5 (if dict > 32 MiB)

              mode=modo
                     O  modo  de  compactação  especifica  o  método  para  analisar  os  dados  produzidos pelo
                     localizador de correspondência. Os modos suportados são fast e normal. O padrão é fast para
                     predefinições 0–3 e normal para predefinições 4–9.

                     Normalmente, fast é usado com localizadores de correspondência cadeia de hashs e normal com
                     localizadores de correspondência de árvore binária. Isso também é o  que  os  predefinições
                     fazem.

              nice=nice
                     Especifica o que é considerado um bom comprimento para uma correspondência. Uma vez que uma
                     correspondência  de  pelo  menos  nice  bytes  é  encontrada,  o algoritmo para de procurar
                     correspondências possivelmente melhores.

                     Nice pode ser 2–273 bytes. Valores mais altos tendem a fornecer melhor taxa de  compactação
                     em detrimento da velocidade. O padrão depende do predefinição.

              depth=profundidade
                     Especifica a profundidade máxima de pesquisa no localizador de correspondências. O padrão é
                     o  valor  especial de 0, que faz com que o compressor determine um profundidade razoável de
                     mf e nice.

                     Uma profundidade razoável para cadeias de hash é 4–100 e  16–1000  para  árvores  binárias.
                     Usar valores muito altos para profundidade pode tornar o codificador extremamente lento com
                     alguns arquivos. Evite definir profundidade acima de 1000 a menos que você esteja preparado
                     para interromper a compactação caso ela esteja demorando muito.

              Ao  decodificar  fluxos brutos (--format=raw), o LZMA2 precisa apenas do dicionário tamanho. LZMA1
              também precisa de lc, lp e pb.

       --x86[=opções]
       --arm[=opções]
       --armthumb[=opções]
       --arm64[=opções]
       --powerpc[=opções]
       --ia64[=opções]
       --sparc[=opções]
       --riscv[=opções]
              Adiciona um filtro de ramificação/chamada/salto (BCJ) à cadeia de filtros. Esses filtros podem ser
              usados apenas como um filtro não último na cadeia de filtros.

              Um filtro BCJ converte endereços relativos no código de máquina em  suas  contrapartes  absolutas.
              Isso  não  altera  o  tamanho  dos  dados,  mas aumenta a redundância, o que pode ajudar o LZMA2 a
              produzir um arquivo .xz 0–15 % menor. Os filtros BCJ são sempre  reversíveis,  portanto,  usar  um
              filtro  BCJ  para  o tipo errado de dados não causa nenhuma perda de dados, embora possa piorar um
              pouco a taxa de compactação.Os filtros BCJ são muito rápidos e usam uma quantidade  insignificante
              de memória.

              Esses filtros BCJ têm problemas conhecidos relacionados à taxa de compactação:

              •  Alguns  tipos  de  arquivos  contendo  código  executável  (por  exemplo,  arquivos  de objeto,
                 bibliotecas estáticas e módulos do kernel do Linux) têm os endereços nas instruções preenchidos
                 com valores de preenchimento. Esses filtros BCJ ainda vão fazer a conversão de endereço, o  que
                 vai piorar a compactação desses arquivos.

              •  Se  um  filtro  BCJ for aplicado em um arquivo, é possível que isso torne a taxa de compactação
                 pior do que não usar um filtro BCJ. Por exemplo, se houver  executáveis  semelhantes  ou  mesmo
                 idênticos,  a  filtragem  provavelmente  tornará  os  arquivos menos semelhantes e, portanto, a
                 compactação será pior. O conteúdo de arquivos não executáveis no mesmo arquivo também pode  ser
                 importante.  Na  prática  tem  que  tentar  com e sem filtro BCJ para ver qual é melhor em cada
                 situação.

              Conjuntos de instruções diferentes têm  alinhamento  diferente:  o  arquivo  executável  deve  ser
              alinhado a um múltiplo desse valor nos dados de entrada para fazer o filtro funcionar.

                     Filtro      Alinhamento   Observações
                     x86              1        x86 32 bits ou 64 bits
                     ARM              4
                     ARM-Thumb        2
                     ARM64            4        Alinhamento de 4096 bytes
                                               é melhor
                     PowerPC          4        Somente big endian
                     IA-64           16        Itanium
                     SPARC            4
                     RISC-V           2

              Since  the  BCJ-filtered  data  is  usually  compressed  with  LZMA2, the compression ratio may be
              improved slightly if the LZMA2 options are set to match the alignment of the selected BCJ  filter.
              Examples:

              •  IA-64 filter has 16-byte alignment so pb=4,lp=4,lc=0 is good with LZMA2 (2^4=16).

              •  RISC-V  code  has  2-byte  or  4-byte  alignment  depending on whether the file contains 16-bit
                 compressed instructions (the C extension).  When 16-bit instructions are  used,  pb=2,lp=1,lc=3
                 or  pb=1,lp=1,lc=3  is  good.   When  16-bit instructions aren't present, pb=2,lp=2,lc=2 is the
                 best.  readelf -h can be used to check if "RVC" appears on the "Flags" line.

              •  ARM64 is always 4-byte aligned so pb=2,lp=2,lc=2 is the best.

              •  The  x86  filter  is  an  exception.   It's  usually  good  to  stick   to   LZMA2's   defaults
                 (pb=2,lp=0,lc=3)  when compressing x86 executables.

              Todos os filtros BCJ suportam as mesmas opções:

              start=deslocamento
                     Especifica  o  deslocamento  inicial  que  é usado na conversão entre endereços relativos e
                     absolutos. O deslocamento deve ser um múltiplo do alinhamento do filtro (ver tabela acima).
                     O padrão é zero. Na prática, o padrão é  bom;  especificar  um  deslocamento  personalizado
                     quase nunca é útil.

       --delta[=opções]
              Adiciona  o  filtro  Delta  à  cadeia  de  filtros.  O  filtro Delta só pode ser usado como filtro
              não-último na cadeia de filtros.

              Atualmente, apenas o cálculo simples de delta byte a byte é suportado. Pode ser útil ao compactar,
              por exemplo, imagens bitmap não compactadas ou áudio PCM não compactado. No entanto, algoritmos de
              propósito especial podem fornecer resultados significativamente melhores do  que  Delta  +  LZMA2.
              Isso  é  verdade  especialmente  com  áudio,  que  compacta mais rápido e melhor, por exemplo, com
              flac(1).

              Opções suportadas:

              dist=distância
                     Especifica a distância do cálculo delta em bytes. distância deve ser 1–256. O padrão é 1.

                     Por exemplo, com dist=2 e entrada de oito bytes A1 B1 A2 B3 A3 B5 A4 B7, a saída será A1 B1
                     01 02 01 02 01 02.

   Outras opções
       -q, --quiet
              Suprime avisos e avisos. Especifique isso duas vezes para suprimir erros também.  Esta  opção  não
              tem efeito no status de saída. Ou seja, mesmo que um aviso tenha sido suprimido, o status de saída
              para indicar um aviso ainda é usado.

       -v, --verbose
              Ser  detalhado.  Se  o  erro  padrão  estiver  conectado a um terminal, xz exibirá um indicador de
              progresso. Especifique --verbose duas vezes dará uma saída ainda mais detalhada.

              O indicador de progresso mostra as seguintes informações:

              •  A porcentagem de conclusão é mostrada se o tamanho do arquivo  de  entrada  for  conhecido.  Ou
                 seja, a porcentagem não pode ser mostrada em encadeamentos (pipe).

              •  Quantidade de dados compactados produzidos (compactando) ou consumidos (descompactando).

              •  Quantidade de dados não compactados consumidos (compactação) ou produzidos (descompactação).

              •  Taxa  de  compactação,  que é calculada dividindo a quantidade de dados compactados processados
                 até o momento pela quantidade de dados não compactados processados até o momento.

              •  Velocidade de compactação ou descompactação. Isso é medido  como  a  quantidade  de  dados  não
                 compactados  consumidos  (compactação)  ou  produzidos (descompactação) por segundo. É mostrado
                 após alguns segundos desde que xz começou a processar o arquivo.

              •  Tempo decorrido no formato M:SS ou H:MM:SS.

              •  O tempo restante estimado é mostrado apenas quando o tamanho do arquivo de entrada é  conhecido
                 e  alguns segundos já se passaram desde que xz começou a processar o arquivo. A hora é mostrada
                 em um formato menos preciso que nunca tem dois pontos, por exemplo, 2 min 30 s.

              Quando o erro padrão não é um terminal, --verbose fará com que  xz  imprima  o  nome  do  arquivo,
              tamanho  compactado,  tamanho  não  compactado,  taxa  de  compactação  e  possivelmente  também a
              velocidade e o tempo decorrido em uma única linha  para  o  erro  padrão  após  a  compactação  ou
              descompactando  o arquivo. A velocidade e o tempo decorrido são incluídos apenas quando a operação
              leva pelo menos alguns  segundos.  Se  a  operação  não  foi  concluída,  por  exemplo,  devido  à
              interrupção  do  usuário,  também é impressa a porcentagem de conclusão se o tamanho do arquivo de
              entrada for conhecido.

       -Q, --no-warn
              Não define o status de saída como 2,  mesmo  que  uma  condição  digna  de  um  aviso  tenha  sido
              detectada.  Esta opção não afeta o nível de detalhamento, portanto, tanto --quiet quanto --no-warn
              devem ser usados para não exibir avisos e não alterar o status de saída.

       --robot
              Imprime mensagens em um formato analisável por máquina. Isso visa facilitar a criação de frontends
              que desejam usar xz em vez de liblzma, o que pode ser o caso de vários scripts. A saída  com  esta
              opção habilitada deve ser estável em versões xz. Consulte a seção MODO ROBÔ para obter detalhes.

       --info-memory
              Exibe,  em  formato  legível  por  humanos,  quanta  memória  física  (RAM)  e  quantos threads de
              processador xz acredita que o sistema possui e os limites de uso de  memória  para  compactação  e
              descompactação e saia com êxito.

       -h, --help
              Exibe uma mensagem de ajuda descrevendo as opções mais usadas e sai com sucesso.

       -H, --long-help
              Exibe uma mensagem de ajuda descrevendo todos os recursos de xz e sai com sucesso

       -V, --version
              Exibe  o  número  da  versão  de xz e liblzma em formato legível por humanos. Para obter uma saída
              analisável por máquina, especifique --robot antes de --version.

MODO ROBÔ

       The robot mode is activated with the --robot option.  It makes the output of xz easier to parse by  other
       programs.   Currently  --robot is supported only together with --list, --filters-help, --info-memory, and
       --version.  It will be supported for compression and decompression in the future.

   Modo lista
       xz --robot --list usa saída separada por tabulações. A primeira coluna de cada linha  possui  uma  string
       que indica o tipo de informação encontrada naquela linha:

       name   Esta  é sempre a primeira linha ao começar a listar um arquivo. A segunda coluna na linha é o nome
              do arquivo.

       file   Esta linha contém informações gerais sobre o arquivo .xz. Esta linha  é  sempre  impressa  após  a
              linha name.

       stream Este  tipo  de  linha  é usado somente quando --verbose foi especificado. Existem tantas linhas de
              stream quanto fluxos no arquivo .xz.

       block  Este tipo de linha é usado somente quando --verbose foi especificado. Existem tantas linhas  block
              quanto  blocos  no  arquivo  .xz.  As  linhas  block  são  mostradas  após todas as linhas stream;
              diferentes tipos de linha não são intercalados.

       summary
              Este tipo de linha é usado apenas quando --verbose foi  especificado  duas  vezes.  Esta  linha  é
              impressa  após  todas  as  linhas  de  block.  Assim  como a linha arquivo, a linha summary contém
              informações gerais sobre o arquivo .xz.

       totals Esta linha é sempre a última linha da saída da lista. Ele mostra as contagens totais e tamanhos.

       As colunas das linhas file:
              2.  Número de fluxos no arquivo
              3.  Número total de blocos no(s) fluxo(s)
              4.  Tamanho compactado do arquivo
              5.  Uncompressed size of the file
              6.  Taxa de compactação, por exemplo, 0.123. Se a proporção for superior a 9.999,  serão  exibidos
                  três traços (---) em vez da proporção.
              7.  Lista  separada  por vírgulas de nomes de verificação de integridade. As seguintes strings são
                  usadas para os tipos de verificação conhecidos: None, CRC32, CRC64 e SHA-256.  Para  tipos  de
                  verificações  desconhecidos, Unknown-N é usado, onde N é o ID do cheque como um número decimal
                  (um ou dois dígitos).
              8.  Tamanho total do preenchimento de fluxo no arquivo

       As colunas das linhas stream:
              2.  Número do fluxo (o primeiro fluxo é 1)
              3.  Número de blocos no fluxo
              4.  Deslocamento inicial compactado
              5.  Deslocamento inicial descompactado
              6.  Tamanho compactado (não inclui preenchimento de fluxo)
              7.  Tamanho descompactado
              8.  Taxa de compactação
              9.  Nome da verificação de integridade
              10. Tamanho do preenchimento do fluxo

       As colunas das linhas block:
              2.  Número do fluxo que contém este bloco
              3.  Número do bloco relativo ao início do fluxo (o primeiro bloco é 1)
              4.  Número do bloco relativo ao início do arquivo
              5.  Deslocamento inicial compactado em relação ao início do arquivo
              6.  Deslocamento inicial descompactado em relação ao início do arquivo
              7.  Tamanho total compactado do bloco (inclui cabeçalhos)
              8.  Tamanho descompactado
              9.  Taxa de compactação
              10. Nome da verificação de integridade

       Se --verbose for especificado duas vezes, colunas adicionais serão incluídas nas linhas block.  Eles  não
       são  exibidos  com  um  único --verbose, porque obter essas informações requer muitas buscas e, portanto,
       pode ser lento:
              11. Valor da verificação de integridade em hexadecimal
              12. Tamanho do cabeçalho do bloco
              13. Sinalizadores de bloco: c indica que o tamanho compactado está  presente  e  u  indica  que  o
                  tamanho não compactado está presente. Se o sinalizador não estiver definido, um traço (-) será
                  exibido para manter o comprimento da string fixo. Novos sinalizadores podem ser adicionados ao
                  final da string no futuro.
              14. Tamanho  dos  dados  reais  compactados  no  bloco  (isso  exclui  o  cabeçalho  do  bloco,  o
                  preenchimento do bloco e os campos de verificação)
              15. Quantidade de memória (em bytes) necessária para descompactar este bloco com esta versão xz
              16. Cadeia de filtro. Observe que a maioria das opções usadas no momento da compactação  não  pode
                  ser  conhecida,  pois  apenas  as opções necessárias para a descompactação são armazenadas nos
                  cabeçalhos .xz.

       As colunas das linhas summary:
              2.  Quantidade de memória (em bytes) necessária para descompactar este arquivo com esta versão  do
                  xz
              3.  yes  ou  no  indicando  se  todos  os cabeçalhos de bloco têm tamanho compactado e tamanho não
                  compactado armazenados neles
              Desde xz 5.1.2alpha:
              4.  Versão mínima do xz necessária para descompactar o arquivo

       As colunas da linha totals:
              2.  Número de fluxos
              3.  Número de blocos
              4.  Tamanho compactado
              5.  Tamanho descompactado
              6.  Taxa de compactação média
              7.  Lista separada por vírgulas de nomes de verificação de integridade que estavam  presentes  nos
                  arquivos
              8.  Tamanho do preenchimento do fluxo
              9.  Número  de  arquivos.  Isso  está  aqui para manter a ordem das colunas anteriores a mesma das
                  linhas file.

       Se --verbose for especificado duas vezes, colunas adicionais serão incluídas na linha totals:
              10. Quantidade máxima de memória (em bytes) necessária para  descompactar  os  arquivos  com  esta
                  versão do xz
              11. yes  ou  no  indicando  se  todos  os cabeçalhos de bloco têm tamanho compactado e tamanho não
                  compactado armazenados neles
              Desde xz 5.1.2alpha:
              12. Versão mínima do xz necessária para descompactar o arquivo

       Versões futuras podem adicionar novos tipos de linha e novas colunas podem ser adicionadas aos  tipos  de
       linha existentes, mas as colunas existentes não serão alteradas.

   Filters help
       xz --robot --filters-help prints the supported filters in the following format:

       filter:option=<value>,option=<value>...

       filter Name of the filter

       option Name of a filter specific option

       value  Numeric value ranges appear as <min-max>.  String value choices are shown within < > and separated
              by a | character.

       Each filter is printed on its own line.

   Informações de limite de memória
       xz --robot --info-memory prints a single line with multiple tab-separated columns:

       1.  Quantidade total de memória física (RAM) em bytes.

       2.  Limite  de  uso  de  memória  para compactação em bytes (--memlimit-compress). Um valor especial de 0
           indica a configuração padrão que para o modo de thread única é o mesmo que sem limite.

       3.  Limite de uso de memória para descompactação em bytes (--memlimit-decompress). Um valor especial de 0
           indica a configuração padrão que para o modo de thread única é o mesmo que sem limite.

       4.  Desde  xz  5.3.4alpha:  Uso  de  memória   para   descompactação   com   várias   thread   em   bytes
           (--memlimit-mt-decompress).  Isso  nunca é zero porque um valor padrão específico do sistema mostrado
           na coluna 5 é usado se nenhum limite for especificado explicitamente. Isso também nunca é maior que o
           valor na coluna 3, mesmo que um valor maior tenha sido especificado com --memlimit-mt-decompress.

       5.  Desde xz 5.3.4alpha: Um limite de uso de memória padrão  específico  do  sistema  que  é  usado  para
           limitar  o  número de threads ao compactar com um número automático de threads (--threads=0) e nenhum
           limite de uso de memória foi especificado (--memlimit-compress). Isso também é  usado  como  o  valor
           padrão para --memlimit-mt-decompress.

       6.  Desde xz 5.3.4alpha: Número de threads de processador disponíveis.

       No  futuro,  a  saída  de xz --robot --info-memory pode ter mais colunas, mas nunca mais do que uma única
       linha.

   Versão
       xz --robot --version prints the version number of xz and liblzma in the following format:

       XZ_VERSION=XYYYZZZS
       LIBLZMA_VERSION=XYYYZZZS

       X      Versão principal.

       YYY    Versão menor. Números pares são estáveis. Os números ímpares são versões alfa ou beta.

       ZZZ    Nível de patch para versões estáveis ou apenas um contador para versões de desenvolvimento.

       S      Estabilidade. 0 é alfa, 1 é beta e 2 é estável. S deve ser sempre 2 quando YYY for par.

       XYYYZZZS são iguais em ambas as linhas se xz e liblzma forem da mesma versão do XZ Utils.

       Exemplos: 4.999.9beta é 49990091 e 5.0.0 é 50000002.

STATUS DE SAÍDA

       0      Está tudo bem.

       1      Ocorreu um erro.

       2      Algo digno de um aviso ocorreu, mas ocorreu nenhum erro real.

       Observações (não avisos ou erros) impressas no erro padrão não afetam o status de saída.

AMBIENTE

       xz analisa listas de opções separadas por espaços das variáveis de ambiente XZ_DEFAULTS e  XZ_OPT,  nesta
       ordem,  antes  de  analisar  as opções da linha de comando. Observe que apenas as opções são analisadas a
       partir das variáveis de ambiente; todas as não opções são silenciosamente ignoradas. A  análise  é  feita
       com getopt_long(3) que também é usado para os argumentos da linha de comando.

       Warning:  By  setting these environment variables, one is effectively modifying programs and scripts that
       run xz.  Most of the time it is safe to set memory usage  limits,  number  of  threads,  and  compression
       options  via  the environment variables.  However, some options can break scripts.  An obvious example is
       --help which makes xz show the help text instead of compressing or decompressing  a  file.   More  subtle
       examples  are  --quiet and --verbose.  In many cases it works well to enable the progress indicator using
       --verbose, but in some situations the extra messages create problems.  The verbosity level  also  affects
       the behavior of --list.

       XZ_DEFAULTS
              User-specific  or  system-wide  default  options.  Typically this is set in a shell initialization
              script to enable xz's memory usage limiter by default  or  set  the  default  number  of  threads.
              Excluding  shell  initialization  scripts  and  similar special cases, scripts should never set or
              unset XZ_DEFAULTS.

       XZ_OPT Isso é para passar opções para xz quando não é possível definir as opções diretamente na linha  de
              comando  xz.  Este  é  o  caso quando xz é executado por um script ou ferramenta, por exemplo, GNU
              tar(1):

                     XZ_OPT=-2v tar caf foo.tar.xz foo

              Os scripts podem usar XZ_OPT, por exemplo, para definir opções de compactação  padrão  específicas
              do  script.  Ainda é recomendável permitir que os usuários substituam XZ_OPT se isso for razoável.
              Por exemplo, em scripts sh(1) pode-se usar algo assim:

                     XZ_OPT=${XZ_OPT-"-7e"}
                     export XZ_OPT

COMPATIBILIDADE COM LZMA UTILS

       A sintaxe da linha de comando do xz é praticamente um superconjunto de  lzma,  unlzma  e  lzcat  conforme
       encontrado  no LZMA Utils 4.32.x. Na maioria dos casos, é possível substituir LZMA Utils por XZ Utils sem
       interromper os scripts existentes. Existem algumas incompatibilidades, porém, que às vezes  podem  causar
       problemas.

   Níveis de predefinição de compactação
       A numeração das predefinições de nível de compactação não é idêntica em xz e LZMA Utils. A diferença mais
       importante  é  como  os tamanhos dos dicionários são mapeados para diferentes predefinições. O tamanho do
       dicionário é aproximadamente igual ao uso de memória do descompactador.

              Nível     xz      LZMA Utils
               -0     256 KiB      N/D
               -1       1 MiB     64 KiB
               -2       2 MiB      1 MiB
               -3       4 MiB    512 KiB
               -4       4 MiB      1 MiB
               -5       8 MiB      2 MiB
               -6       8 MiB      4 MiB
               -7      16 MiB      8 MiB
               -8      32 MiB     16 MiB
               -9      64 MiB     32 MiB

       As diferenças de tamanho do dicionário também afetam o uso da memória do compressor, mas existem  algumas
       outras diferenças entre LZMA Utils e XZ Utils, que tornam a diferença ainda maior:

              Nível     xz      LZMA Utils 4.32.x
               -0       3 MiB          N/D
               -1       9 MiB          2 MiB
               -2      17 MiB         12 MiB
               -3      32 MiB         12 MiB
               -4      48 MiB         16 MiB
               -5      94 MiB         26 MiB
               -6      94 MiB         45 MiB
               -7     186 MiB         83 MiB
               -8     370 MiB        159 MiB
               -9     674 MiB        311 MiB

       O  nível  de  predefinição  padrão  no  LZMA  Utils  é  -7 enquanto no XZ Utils é -6, então ambos usam um
       dicionário de 8 MiB por padrão.

   Arquivos .lzma em um fluxo versus sem ser em um fluxo
       O tamanho descompactado do arquivo pode ser armazenado no cabeçalho de .lzma. O LZMA Utils  faz  isso  ao
       compactar  arquivos  comuns.  A alternativa é marcar que o tamanho não compactado é desconhecido e usar o
       marcador de fim de carga útil para indicar onde o descompactador deve parar. O LZMA Utils usa este método
       quando o tamanho não compactado não é conhecido, como é o caso, por exemplo, de encadeamentos (pipes).

       xz oferece suporte à descompactação de arquivos .lzma com ou sem marcador de fim de carga útil, mas todos
       os arquivos .lzma criados por xz usarão marcador de fim de carga útil e  terão  o  tamanho  descompactado
       marcado como desconhecido no cabeçalho de .lzma. Isso pode ser um problema em algumas situações incomuns.
       Por  exemplo,  um  descompactador de .lzma em um dispositivo embarcado pode funcionar apenas com arquivos
       que tenham tamanho descompactado conhecido. Se você encontrar esse problema, precisará usar o LZMA  Utils
       ou o LZMA SDK para criar arquivos .lzma com tamanho descompactado conhecido.

   Arquivos .lzma não suportados
       O  formato  .lzma  permite valores lc até 8 e valores lp até 4. LZMA Utils pode descompactar arquivos com
       qualquer lc e lp, mas sempre cria arquivos com lc=3 e lp=0. Criar arquivos com outros lc e lp é  possível
       com xz e com LZMA SDK.

       A  implementação  do  filtro  LZMA1 em liblzma requer que a soma de lc e lp não exceda 4. Assim, arquivos
       .lzma, que excedam esta limitação, não podem ser descompactados com xz.

       LZMA Utils cria apenas arquivos .lzma que possuem um tamanho de dicionário de 2^n (uma  potência  de  2),
       mas  aceita  arquivos com qualquer tamanho de dicionário. liblzma aceita apenas arquivos .lzma que tenham
       um tamanho de dicionário de 2^n ou 2^n + 2^(n-1). Isso é para diminuir os falsos  positivos  ao  detectar
       arquivos .lzma.

       Essas  limitações não devem ser um problema na prática, já que praticamente todos os arquivos .lzma foram
       compactados com configurações que o liblzma aceitará.

   Lixo à direita
       Ao descompactar, o LZMA Utils silenciosamente ignora tudo após o primeiro fluxo  .lzma.  Na  maioria  das
       situações,  isso é um bug. Isso também significa que o LZMA Utils não oferece suporte a descompactação de
       arquivos .lzma concatenados.

       Se houver dados restantes após o primeiro fluxo de .lzma, xz considera o arquivo corrompido, a menos  que
       --single-stream  tenha sido usado. Isso pode quebrar scripts obscuros que presumiram que o lixo à direita
       é ignorado.

NOTAS

   A saída compactada pode variar
       A saída compactada exata produzida a partir do mesmo arquivo de entrada não compactado pode variar  entre
       as  versões  do  XZ  Utils,  mesmo  se  as  opções  de  compactação forem idênticas. Isso ocorre porque o
       codificador pode ser aprimorado (compactação mais rápida ou melhor) sem afetar o formato  do  arquivo.  A
       saída pode variar mesmo entre diferentes compilações da mesma versão do XZ Utils, se diferentes opções de
       compilação forem usadas.

       A  informação  acima  significa  que,  uma  vez  que  --rsyncable  tenha  sido  implementado, os arquivos
       resultantes não serão necessariamente "rsyncáveis", a menos que os arquivos antigos e novos  tenham  sido
       compactados  com  a  mesma  versão  xz. Esse problema pode ser corrigido se uma parte da implementação do
       codificador for congelada para manter a saída de rsyncable estável nas versões do xz.

   Descompactadores .xz embarcados
       As implementações do descompactador .xz embarcados, como o  XZ  Embedded,  não  oferecem  necessariamente
       suporte  a  arquivos  criados com tipos de verificações de integridade diferentes de none e crc32. Como o
       padrão é --check=crc64, você deve usar --check=none ou --check=crc32  ao  criar  arquivos  para  sistemas
       embarcados.

       Fora  dos sistemas embarcados, todos os descompactadores de formato .xz oferecem suporte a todos os tipos
       de verificação ou, pelo menos, são capazes de descompactar o  arquivo  sem  verificar  a  verificação  de
       integridade se a verificação específica não for suportada.

       XZ Embedded oferece suporte a filtros BCJ, mas apenas com o deslocamento inicial padrão.

EXEMPLOS

   Básico
       Compactar  o  arquivo  foo  em  foo.xz  usando  o  nível  de  compactação  padrão (-6) e remover foo se a
       compactação for bem-sucedida:

              xz foo

       Descompactar bar.xz em bar e não remover bar.xz mesmo se a descompactação for bem-sucedida:

              xz -dk bar.xz

       Criar baz.tar.xz com a predefinição -4e (-4 --extreme), que é mais lenta que o padrão -6, mas precisa  de
       menos memória para compactação e descompactação (48  MiB e 5 MiB, respectivamente):

              tar cf - baz | xz -4e > baz.tar.xz

       Uma  mistura  de  arquivos compactados e descompactados pode ser descompactada para a saída padrão com um
       único comando:

              xz -dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt

   Compactação paralela de muitos arquivos
       No GNU e *BSD, find(1) e xargs(1) podem ser usados para paralelizar a compactação de muitos arquivos:

              find . -type f \! -name '*.xz' -print0 \
                  | xargs -0r -P4 -n16 xz -T1

       A opção -P para xargs(1) define o número de processos paralelos do xz. O melhor valor  para  a  opção  -n
       depende  de  quantos  arquivos  devem  ser  compactados.  Se  houver  apenas  alguns  arquivos,  o  valor
       provavelmente deve ser 1; com dezenas de milhares de arquivos, 100 ou até mais podem ser apropriados para
       reduzir o número de processos de xz que xargs(1) eventualmente criará.

       A opção -T1 para xz existe para forçá-lo ao modo de thread única, porque xargs(1) é usado para  controlar
       a quantidade de paralelização.

   Modo robô
       Calcular quantos bytes foram salvos no total depois de compactar vários arquivos:

              xz --robot --list *.xz | awk '/^totals/{print $5-$4}'

       Um  script  pode querer saber que está usando xz novo o suficiente. O seguinte script sh(1) verifica se o
       número da versão da ferramenta xz é pelo menos 5.0.0. Este método é compatível com versões beta  antigas,
       que não suportavam a opção --robot:

              if ! eval "$(xz --robot --version 2> /dev/null)" ||
                      [ "$XZ_VERSION" -lt 50000002 ]; then
                  echo "Your xz is too old."
              fi
              unset XZ_VERSION LIBLZMA_VERSION

       Definir  um  limite  de  uso de memória para descompactação usando XZ_OPT, mas se um limite já tiver sido
       definido, não o aumentar:

              NEWLIM=$((123 << 20))  # 123 MiB
              OLDLIM=$(xz --robot --info-memory | cut -f3)
              if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then
                  XZ_OPT="$XZ_OPT --memlimit-decompress=$NEWLIM"
                  export XZ_OPT
              fi

   Cadeias de filtro de compressor personalizadas
       O uso mais simples para cadeias de filtro personalizadas é personalizar uma predefinição LZMA2. Isso pode
       ser útil, porque as predefinições abrangem apenas um subconjunto das combinações potencialmente úteis  de
       configurações de compactação.

       As  colunas CompCPU das tabelas das descrições das opções -0 ... -9 e --extreme são úteis ao personalizar
       as predefinições LZMA2. Aqui estão as partes relevantes coletadas dessas duas tabelas:

              Predefinição   CompCPU
                  -0            0
                  -1            1
                  -2            2
                  -3            3
                  -4            4
                  -5            5
                  -6            6
                  -5e           7
                  -6e           8

       Se você sabe que um arquivo requer um dicionário um tanto grande (por  exemplo,  32 MiB)  para  compactar
       bem,  mas  deseja  comprimi-lo mais rapidamente do que xz -8 faria, uma predefinição com um valor CompCPU
       baixo (por exemplo, 1) pode ser modificado para usar um dicionário maior:

              xz --lzma2=preset=1,dict=32MiB foo.tar

       Com certos arquivos, o comando acima pode ser mais rápido que xz -6 enquanto compacta  significativamente
       melhor.  No  entanto, deve-se enfatizar que apenas alguns arquivos se beneficiam de um grande dicionário,
       mantendo o valor CompCPU baixo. A situação mais óbvia, onde um grande dicionário pode ajudar muito, é  um
       arquivo  contendo arquivos muito semelhantes de pelo menos alguns megabytes cada. O tamanho do dicionário
       deve ser significativamente maior do que qualquer arquivo individual para permitir que o LZMA2  aproveite
       ao máximo as semelhanças entre arquivos consecutivos.

       Se  o  uso  muito  alto  de memória do compactador e do descompactador for bom e o arquivo que está sendo
       compactado tiver pelo menos várias centenas de megabytes, pode ser útil usar um dicionário ainda maior do
       que os 64 MiB que o xz -9 usaria:

              xz -vv --lzma2=dict=192MiB big_foo.tar

       Usar -vv (--verbose --verbose) como no exemplo acima pode ser útil para ver os requisitos de  memória  do
       compactador  e  do  descompactador.  Lembre-se  que  usar  um  dicionário  maior que o tamanho do arquivo
       descompactado é desperdício de memória, então o comando acima não é útil para arquivos pequenos.

       Às vezes, o tempo de compactação não importa, mas o uso de memória do  descompactador  deve  ser  mantido
       baixo,  por  exemplo,  para possibilitar a descompactação do arquivo em um sistema embarcado. O comando a
       seguir usa -6e (-6 --extreme) como base e define o dicionário como apenas 64 KiB.  O  arquivo  resultante
       pode  ser  descompactado com XZ Embedded (é por isso que existe --check=crc32) usando cerca de 100 KiB de
       memória.

              xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo

       Se você deseja espremer o máximo de bytes possível, ajustar o número de bits de contexto literal (lc) e o
       número de bits de posição (pb) às vezes pode ajudar. Ajustar o número de bits  de  posição  literal  (lp)
       também  pode ajudar, mas geralmente lc e pb são mais importantes. Por exemplo, um arquivo de código-fonte
       contém principalmente texto US-ASCII, então algo como o seguinte pode fornecer  um  arquivo  ligeiramente
       (como 0,1 %) menor que xz -6e (tente também sem lc=4):

              xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar

       O  uso  de  outro filtro junto com o LZMA2 pode melhorar a compactação com determinados tipos de arquivo.
       Por exemplo, para compactar uma biblioteca compartilhada x86-32 ou x86-64 usando o filtro x86 BCJ:

              xz --x86 --lzma2 libfoo.so

       Observe que a ordem das opções de filtro é significativa. Se --x86 for especificado após --lzma2, xz dará
       um erro, porque não pode haver nenhum filtro após LZMA2 e também porque o filtro x86  BCJ  não  pode  ser
       usado como o último filtro em a corrente.

       O filtro Delta junto com LZMA2 pode dar bons resultados com imagens bitmap. Ele geralmente deve superar o
       PNG,  que possui alguns filtros mais avançados do que o delta simples, mas usa Deflate para a compactação
       real.

       A imagem deve ser salva em formato não compactado, por exemplo, como TIFF não compactado. O parâmetro  de
       distância  do  filtro  Delta  é  definido  para  corresponder ao número de bytes por pixel na imagem. Por
       exemplo, bitmap RGB de 24 bits precisa de dist=3, e também é bom passar pb=0 para LZMA2 para  acomodar  o
       alinhamento de três bytes:

              xz --delta=dist=3 --lzma2=pb=0 foo.tiff

       Se  várias  imagens  foram  colocadas  em  um  único  arquivo  (por exemplo, .tar), o filtro Delta também
       funcionará, desde que todas as imagens tenham o mesmo número de bytes por pixel.

VEJA TAMBÉM

       xzdec(1), xzdiff(1), xzgrep(1), xzless(1), xzmore(1), gzip(1), bzip2(1), 7z(1)

       XZ Utils: <https://tukaani.org/xz/>
       XZ Embedded: <https://tukaani.org/xz/embedded.html>
       LZMA SDK: <https://7-zip.org/sdk.html>

Tukaani                                            2025-03-08                                              XZ(1)