'\" t .\" SPDX-License-Identifier: 0BSD .\" .\" Authors: Lasse Collin .\" Jia Tan .\" .\" Brazilian Portuguese translations for xz package .\" Traduções em português brasileiro para o pacote xz. .\" Rafael Fontenelle , 2022-2023. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH XZ 1 2024\-02\-25 Tukaani "XZ Utils" . .SH NOME xz, unxz, xzcat, lzma, unlzma, lzcat \- Compacta ou descompacta arquivos .xz e .lzma . .SH SINOPSE \fBxz\fP [\fIopção...\fP] [\fIarquivo...\fP] . .SH "COMANDOS APELIDOS" \fBunxz\fP é equivalente a \fBxz \-\-decompress\fP. .br \fBxzcat\fP é equivalente a \fBxz \-\-decompress \-\-stdout\fP. .br \fBlzma\fP é equivalente a \fBxz \-\-format=lzma\fP. .br \fBunlzma\fP é equivalente a \fBxz \-\-format=lzma \-\-decompress\fP. .br \fBlzcat\fP é equivalente a \fBxz \-\-format=lzma \-\-decompress \-\-stdout\fP. .PP Ao escrever scripts que precisam descompactar arquivos, é recomendável sempre usar o nome \fBxz\fP com os argumentos apropriados (\fBxz \-d\fP ou \fBxz \-dc\fP) em vez dos nomes \fBunxz\fP e \fBxzcat\fP. . .SH DESCRIÇÃO \fBxz\fP é uma ferramenta de compactação de dados de uso geral com sintaxe de linha de comando semelhante ao \fBgzip\fP(1) e ao \fBbzip2\fP(1). O formato de arquivo nativo é o formato \fB.xz\fP, mas o formato legado \fB.lzma\fP 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 \&\fB.lz\fP usado por \fBlzip\fP é suportada. .PP \fBxz\fP compacta ou descompacta cada \fIarquivo\fP de acordo com o modo de operação selecionado. Se nenhum \fIarquivo\fP for fornecido ou \fIarquivo\fP for \fB\-\fP, \fBxz\fP lê da entrada padrão e grava os dados processados na saída padrão. \fBxz\fP recusará (exibirá um erro e ignorará o \fIarquivo\fP) para gravar dados compactados na saída padrão se for um terminal. Da mesma forma, \fBxz\fP se recusará a ler dados compactados da entrada padrão se for um terminal. .PP A menos que \fB\-\-stdout\fP seja especificado, \fIarquivos\fP diferentes de \fB\-\fP são gravados em um novo arquivo cujo nome é derivado do nome \fIarquivo\fP de origem: .IP \(bu 3 Ao compactar, o sufixo do formato de arquivo de destino (\fB.xz\fP ou \fB.lzma\fP) é anexado ao nome do arquivo de origem para obter o nome do arquivo de destino. .IP \(bu 3 Ao descompactar, o sufixo \fB.xz\fP, \fB.lzma\fP ou \fB.lz\fP é removido do nome do arquivo para obter o nome do arquivo de destino. \fBxz\fP também reconhece os sufixos \fB.txz\fP e \fB.tlz\fP e os substitui pelo sufixo \fB.tar\fP. .PP Se o arquivo de destino já existir, um erro será exibido e \fIarquivo\fP será ignorado. .PP A menos que grave na saída padrão, \fBxz\fP exibirá um aviso e pulará o \fIarquivo\fP se qualquer um dos seguintes se aplicar: .IP \(bu 3 \fIArquivo\fP não é um arquivo normal. Links simbólicos não são seguidos e, portanto, não são considerados arquivos comuns. .IP \(bu 3 \fIArquivo\fP tem mais de um link físico. .IP \(bu 3 \fIFile\fP tem setuid, setgid ou sticky bit definido. .IP \(bu 3 O modo de operação está definido para compactar e o \fIarquivo\fP já possui um sufixo do formato de arquivo de destino (\fB.xz\fP ou \fB.txz\fP ao compactar para o formato \fB.xz\fP e \fB.lzma \fP ou \fB.tlz\fP ao compactar para o formato \&\fB.lzma\fP). .IP \(bu 3 O modo de operação está definido para descompactar e o \fIarquivo\fP não possui um sufixo de nenhum dos formatos de arquivo suportados (\fB.xz\fP, \fB.txz\fP, \&\fB.lzma\fP, \fB.tlz\fP , ou \fB.lz\fP). .PP Depois de compactar ou descompactar com êxito o \fIarquivo\fP, o \fBxz\fP copia o dono, grupo, permissões, horário de acesso e horário de modificação do \fIarquivo\fP 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 \fIarquivo\fP de origem. \fBxz\fP ainda não oferece suporte à cópia de outros metadados, como listas de controle de acesso ou atributos estendidos. .PP Depois que o arquivo de destino for fechado com êxito, o \fIarquivo\fP de origem será removido, a menos que \fB\-\-keep\fP tenha sido especificado. O \fIarquivo\fP de origem nunca é removido se a saída for gravada na saída padrão ou se ocorrer um erro. .PP O envio de \fBSIGINFO\fP ou \fBSIGUSR1\fP para o processo do \fBxz\fP 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 \fB\-\-verbose\fP exibirá um indicador de progresso de atualização automática. . .SS "Uso de memória" O uso de memória de \fBxz\fP 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 \fBxz \-9\fP atualmente requer 65\ MiB de memória. Ainda assim, é possível ter arquivos \fB.xz\fP que requerem vários gigabytes de memória para descompactar. .PP 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 \fBxz\fP 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 \fBulimit\fP(1) para limitar a memória virtual tende a prejudicar \fBmmap\fP(2)). .PP O limitador de uso de memória pode ser ativado com a opção de linha de comando \fB\-\-memlimit=\fP\fIlimite\fP. Geralmente é mais conveniente habilitar o limitador por padrão definindo a variável de ambiente \fBXZ_DEFAULTS\fP, por exemplo, \fBXZ_DEFAULTS=\-\-memlimit=150MiB\fP. É possível definir os limites separadamente para compactação e descompactação usando \fB\-\-memlimit\-compress=\fP\fIlimite\fP e \fB\-\-memlimit\-decompress=\fP\fIlimite\fP. Usar essas duas opções fora de \fBXZ_DEFAULTS\fP raramente é útil porque uma única execução de \fBxz\fP não pode fazer compactação e descompactação e \fB\-\-memlimit=\fP\fIlimite\fP (ou \fB\-M\fP \fIlimite\fP ) é mais curto para digitar na linha de comando. .PP Se o limite de uso de memória especificado for excedido durante a descompactação, \fBxz\fP exibirá um erro e a descompactação do arquivo falhará. Se o limite for excedido durante a compactação, \fBxz\fP tentará reduzir as configurações para que o limite não seja mais excedido (exceto ao usar \fB\-\-format=raw\fP ou \fB\-\-no\-adjust\fP). 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 \fBxz \-9\fP, as configurações serão reduzidas apenas um pouco , não até \fBxz \-8\fP. . .SS "Concatenação e preenchimento com arquivos .xz" É possível concatenar arquivos \fB.xz\fP como estão. \fBxz\fP irá descompactar tais arquivos como se fossem um único arquivo \fB.xz\fP. .PP É 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 \fB.xz\fP for armazenado em uma mídia que mede tamanhos de arquivo em blocos de 512 bytes. .PP Concatenação e preenchimento não são permitidos com arquivos \fB.lzma\fP ou fluxos brutos. . .SH OPÇÕES . .SS "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. .TP \fBKiB\fP Multiplica o inteiro por 1.024 (2^10). \fBKi\fP, \fBk\fP, \fBkB\fP, \fBK\fP e \fBKB\fP são aceitos como sinônimos de \fBKiB\fP. .TP \fBMiB\fP Multiplica o número inteiro por 1.048.576 (2^20). \fBMi\fP, \fBm\fP, \fBM\fP e \fBMB\fP são aceitos como sinônimos de \fBMiB\fP. .TP \fBGiB\fP Multiplica o número inteiro por 1.073.741.824 (2^30). \fBGi\fP, \fBg\fP, \fBG\fP e \fBGB\fP são aceitos como sinônimos de \fBGiB\fP. .PP O valor especial \fBmax\fP pode ser usado para indicar o valor inteiro máximo suportado pela opção. . .SS "Modo de operação" Se várias opções de modo de operação forem dadas, a última entrará em vigor. .TP \fB\-z\fP, \fB\-\-compress\fP 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, \fBunxz\fP implica em \fB\-\-decompress\fP). .TP \fB\-d\fP, \fB\-\-decompress\fP, \fB\-\-uncompress\fP Descompacta. .TP \fB\-t\fP, \fB\-\-test\fP Testa a integridade de \fIarquivos\fP compactados. Esta opção é equivalente a \fB\-\-decompress \-\-stdout\fP exceto que os dados descompactados são descartados em vez de serem gravados na saída padrão. Nenhum arquivo é criado ou removido. .TP \fB\-l\fP, \fB\-\-list\fP Imprime informações sobre \fIarquivos\fP 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. .IP "" A listagem padrão mostra informações básicas sobre \fIarquivos\fP, um arquivo por linha. Para obter informações mais detalhadas, use também a opção \fB\-\-verbose\fP. Para obter ainda mais informações, use \fB\-\-verbose\fP 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, \fBless\ \-S\fP pode ser conveniente se o terminal não tiver largura o suficiente. .IP "" A saída exata pode variar entre versões \fBxz\fP e localidades diferentes. Para saída legível por máquina, \fB\-\-robot \-\-list\fP deve ser usado. . .SS "Modificadores de operação" .TP \fB\-k\fP, \fB\-\-keep\fP Não exclui os arquivos de entrada. .IP "" Desde \fBxz\fP 5.2.6, esta opção também faz \fBxz\fP 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 \fB\-\-force\fP. .TP \fB\-f\fP, \fB\-\-force\fP Esta opção tem vários efeitos: .RS .IP \(bu 3 Se o arquivo de destino já existir, o exclui antes de compactar ou descompactar. .IP \(bu 3 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. .IP \(bu 3 Quando usado com \fB\-\-decompress\fP \fB\-\-stdout\fP e \fBxz\fP 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 \fBxzcat\fP \fB\-\-force\fP seja usado como \fBcat\fP(1) para arquivos que não foram compactados com \fBxz\fP. Observe que, no futuro, o \fBxz\fP pode oferecer suporte a novos formatos de arquivo compactado, o que pode fazer com que o \fBxz\fP descompacte mais tipos de arquivos em vez de copiá\-los como na saída padrão. \fB\-\-format=\fP\fIformato\fP pode ser usado para restringir \fBxz\fP para descompactar apenas um único formato de arquivo. .RE .TP \fB\-c\fP, \fB\-\-stdout\fP, \fB\-\-to\-stdout\fP Grava os dados compactados ou descompactados na saída padrão em vez de em um arquivo. Isso implica em \fB\-\-keep\fP. .TP \fB\-\-single\-stream\fP Descompacta apenas o primeiro fluxo de \fB.xz\fP e ignora silenciosamente possíveis dados de entrada restantes após o fluxo. Normalmente, esse restante posterior sem uso faz com que \fBxz\fP exiba um erro. .IP "" \fBxz\fP nunca descompacta mais de um fluxo de arquivos \fB.lzma\fP ou fluxos brutos, mas esta opção ainda faz \fBxz\fP ignorar os possíveis dados posteriores após o arquivo \fB.lzma\fP ou fluxo bruto. .IP "" Esta opção não tem efeito se o modo de operação não for \fB\-\-decompress\fP ou \fB\-\-test\fP. .TP \fB\-\-no\-sparse\fP Desativa a criação de arquivos esparsos. Por padrão, ao descompactar em um arquivo normal, \fBxz\fP 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. .TP \fB\-S\fP \fI.suf\fP, \fB\-\-suffix=\fP\fI.suf\fP Ao compactar, usa \fI.suf\fP como sufixo para o arquivo de destino em vez de \&\fB.xz\fP ou \fB.lzma\fP. Se não estiver gravando na saída padrão e o arquivo de origem já tiver o sufixo \fI.suf\fP, um aviso será exibido e o arquivo será ignorado. .IP "" Ao descompactar, reconhece arquivos com o sufixo \fI.suf\fP além de arquivos com o sufixo \fB.xz\fP, \fB.txz\fP, \fB.lzma\fP, \fB.tlz\fP ou \fB.lz\fP . Se o arquivo de origem tiver o sufixo \fI.suf\fP, o sufixo será removido para obter o nome do arquivo de destino. .IP "" Ao compactar ou descompactar fluxos brutos (\fB\-\-format=raw\fP), 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. .TP \fB\-\-files\fP[\fB=\fP\fIarquivo\fP] Lê os nomes dos arquivos a serem processados em \fIarquivo\fP; se \fIarquivo\fP 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 (\fB\-\fP) é 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 \fIarquivo\fP. .TP \fB\-\-files0\fP[\fB=\fP\fIarquivo\fP] Isso é idêntico a \fB\-\-files\fP[\fB=\fP\fIarquivo\fP], exceto que cada nome de arquivo deve ser finalizado com o caractere nulo. . .SS "Opções básicas de formato de arquivo e de compactação" .TP \fB\-F\fP \fIformato\fP, \fB\-\-format=\fP\fIformato\fP Especifica o \fIformato\fP de arquivo para compactar ou descompactar: .RS .TP \fBauto\fP Este é o padrão. Ao compactar, \fBauto\fP é equivalente a \fBxz\fP. Ao descompactar, o formato do arquivo de entrada é detectado automaticamente. Observe que os fluxos brutos (criados com \fB\-\-format=raw\fP) não podem ser detectados automaticamente. .TP \fBxz\fP Compacta no formato de arquivo \fB.xz\fP ou aceite apenas arquivos \fB.xz\fP ao descompactar. .TP \fBlzma\fP, \fBalone\fP Compacta no formato de arquivo legado \fB.lzma\fP ou aceite apenas arquivos \&\fB.lzma\fP ao descompactar. O nome alternativo \fBalone\fP é fornecido para compatibilidade com versões anteriores do LZMA Utils. .TP \fBlzip\fP Aceita apenas arquivos \fB.lz\fP ao descompactar. Sem suporte a compactação. .IP "" O formato \fB.lz\fP versão 0 e a versão não estendida 1 são suportados. Os arquivos da versão 0 foram produzidos por \fBlzip\fP 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 \fBlzip\fP 1.18. .IP "" \fBlzip\fP 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 \fBlzip\fP 1.6. Esta extensão raramente é usada e não é suportada por \fBxz\fP (diagnosticada como entrada corrompida). .TP \fBraw\fP Compacta ou descompacta um fluxo bruto (sem cabeçalhos). Isso é destinado apenas a usuários avançados. Para decodificar fluxos brutos, você precisa usar \fB\-\-format=raw\fP e especificar explicitamente a cadeia de filtros, que normalmente seria armazenada nos cabeçalhos do contêiner. .RE .TP \fB\-C\fP \fIverificação\fP, \fB\-\-check=\fP\fIverificação\fP Especifica o tipo de verificação de integridade. A verificação é calculada a partir dos dados descompactados e armazenados no arquivo \fB.xz\fP. Esta opção tem efeito somente ao compactar no formato \fB.xz\fP; o formato \fB.lzma\fP não oferece suporte a verificações de integridade. A verificação de integridade (se for o caso) é verificada quando o arquivo \fB.xz\fP é descompactado. .IP "" Tipos de \fIverificação\fP suportados: .RS .TP \fBnone\fP 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. .TP \fBcrc32\fP Calcula CRC32 usando o polinômio do IEEE\-802.3 (Ethernet). .TP \fBcrc64\fP 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. .TP \fBsha256\fP Calcula SHA\-256. Isso é um pouco mais lento do que CRC32 e CRC64. .RE .IP "" A integridade dos cabeçalhos de \fB.xz\fP é sempre verificada com CRC32. Não é possível alterá\-la ou desativá\-la. .TP \fB\-\-ignore\-check\fP Não confere a verificação de integridade dos dados compactados ao descompactar. Os valores CRC32 nos cabeçalhos \fB.xz\fP ainda serão conferidos normalmente. .IP "" \fBNão use esta opção a menos que saiba o que está fazendo.\fP Possíveis razões para usar esta opção: .RS .IP \(bu 3 Tentativa de recuperar dados de um arquivo .xz corrompido. .IP \(bu 3 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. .RE .TP \fB\-0\fP ... \fB\-9\fP Seleciona um nível de predefinição de compactação. O padrão é \fB\-6\fP. 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. .IP "" As diferenças entre as predefinições são mais significativas do que com \fBgzip\fP(1) e \fBbzip2\fP(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, \fBnão é uma boa ideia usar cegamente \-9 para tudo\fP como costuma acontecer com \fBgzip\fP(1) e \fBbzip2\fP(1). .RS .TP \fB\-0\fP ... \fB\-3\fP Estas são predefinições um tanto rápidas. \fB\-0\fP às vezes é mais rápida que \fBgzip \-9\fP ao mesmo tempo que compacta muito melhor. As mais altas geralmente têm velocidade comparável ao \fBbzip2\fP(1) com taxa de compactação comparável ou melhor, embora os resultados dependam muito do tipo de dados que estão sendo compactados. .TP \fB\-4\fP ... \fB\-6\fP Compactação boa a muito boa, mantendo o uso de memória do descompactador razoável mesmo para sistemas antigos. \fB\-6\fP é 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. (\fB\-5e\fP ou \fB\-6e\fP também vale a pena considerar. Veja \fB\-\-extreme\fP.) .TP \fB\-7 ... \-9\fP Eles são como \fB\-6\fP, 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. .RE .IP "" 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. .IP "" A tabela a seguir resume os recursos das predefinições: .RS .RS .PP .TS tab(;); c c c c c n n n n n. 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 .TE .RE .RE .IP "" Descrições das colunas: .RS .IP \(bu 3 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 \fB\-7\fP ... \fB\-9\fP quando não há real necessidade deles. Em \fB\-6\fP e inferior, a quantidade de memória desperdiçada geralmente é baixa o suficiente para não importar. .IP \(bu 3 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 \fB\-6\fP \&... \fB\-9\fP, níveis mais altos ainda tendem a ser um pouco mais lentos. Para obter uma compactação ainda mais lenta e possivelmente melhor, consulte \fB\-\-extreme\fP. .IP \(bu 3 CompMem contains the compressor memory requirements in the single\-threaded mode. It may vary slightly between \fBxz\fP versions. .IP \(bu 3 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. .RE .IP "" Memory requirements of the multi\-threaded mode are significantly higher than that of the single\-threaded mode. With the default value of \fB\-\-block\-size\fP, each thread needs 3*3*DictSize plus CompMem or DecMem. For example, four threads with preset \fB\-6\fP needs 660\(en670\ MiB of memory. .TP \fB\-e\fP, \fB\-\-extreme\fP Usa uma variante mais lenta do nível de predefinição de compactação selecionado (\fB\-0\fP ... \fB\-9\fP) 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 \fB\-0\fP ... \fB\-3\fP. .IP "" Como existem duas predefinições com tamanhos de dicionário 4\ MiB e 8\ MiB, as predefinições \fB\-3e\fP e \fB\-5e\fP usam configurações um pouco mais rápidas (CompCPU inferior) do que \fB\-4e\fP e \fB\-6e\fP, respectivamente. Dessa forma, não há duas predefinições idênticas. .RS .RS .PP .TS tab(;); c c c c c n n n n n. 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 .TE .RE .RE .IP "" 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 é \fB\-5\fP, \fB\-6\fP, \fB\-5e\fP e \fB\-6e\fP. .TP \fB\-\-fast\fP .PD 0 .TP \fB\-\-best\fP .PD Esses são apelidos um tanto enganosos para \fB\-0\fP e \fB\-9\fP, respectivamente. Eles são fornecidos apenas para compatibilidade com versões anteriores do LZMA Utils. Evite usar essas opções. .TP \fB\-\-block\-size=\fP\fItamanho\fP Ao compactar para o formato \fB.xz\fP, divida os dados de entrada em blocos de \fItamanho\fP 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. .IP "" In multi\-threaded mode about three times \fIsize\fP bytes will be allocated in each thread for buffering input and output. The default \fIsize\fP is three times the LZMA2 dictionary size or 1 MiB, whichever is more. Typically a good value is 2\(en4 times the size of the LZMA2 dictionary or at least 1 MiB. Using \fIsize\fP 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. .IP "" 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 \fBxz\fP won't be able decompress the files in multi\-threaded mode. .TP \fB\-\-block\-list=\fP\fIitems\fP When compressing to the \fB.xz\fP format, start a new block with an optional custom filter chain after the given intervals of uncompressed data. .IP "" The \fIitems\fP are a comma\-separated list. Each item consists of an optional filter chain number between 0 and 9 followed by a colon (\fB:\fP) 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. .IP "" If the input file is bigger than the sum of the sizes in \fIitems\fP, the last item is repeated until the end of the file. A special value of \fB0\fP may be used as the last size to indicate that the rest of the file should be encoded as a single block. .IP "" An alternative filter chain for each block can be specified in combination with the \fB\-\-filters1=\fP\fIfilters\fP \&...\& \fB\-\-filters9=\fP\fIfilters\fP options. These options define filter chains with an identifier between 1\(en9. 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 (\fB:\fP). For example, if one specifies \fB\-\-block\-list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB\fP then blocks will be created using: .RS .IP \(bu 3 The filter chain specified by \fB\-\-filters1\fP and 2 MiB input .IP \(bu 3 The filter chain specified by \fB\-\-filters3\fP and 2 MiB input .IP \(bu 3 The filter chain specified by \fB\-\-filters2\fP and 4 MiB input .IP \(bu 3 The filter chain specified by \fB\-\-filters2\fP and 4 MiB input .IP \(bu 3 The default filter chain and 2 MiB input .IP \(bu 3 The default filter chain and 4 MiB input for every block until end of input. .RE .IP "" If one specifies a size that exceeds the encoder's block size (either the default value in threaded mode or the value specified with \fB\-\-block\-size=\fP\fIsize\fP), the encoder will create additional blocks while keeping the boundaries specified in \fIitems\fP. For example, if one specifies \fB\-\-block\-size=10MiB\fP \fB\-\-block\-list=5MiB,10MiB,8MiB,12MiB,24MiB\fP 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. .IP "" 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. .TP \fB\-\-flush\-timeout=\fP\fItempo_limite\fP Ao compactar, se mais de \fItempo_limite\fP 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 \fBxz\fP for usado para compactar dados transmitidos por uma rede. Valores \fItempo_limite\fP pequenos tornam os dados disponíveis na extremidade receptora com um pequeno atraso, mas valores \fItempo_limite\fP grandes oferecem melhor taxa de compactação. .IP "" Esse recurso está desabilitado por padrão. Se esta opção for especificada mais de uma vez, a última terá efeito. O valor especial \fItempo_limite\fP de \fB0\fP pode ser usado para desabilitar explicitamente esse recurso. .IP "" Este recurso não está disponível em sistemas não\-POSIX. .IP "" .\" FIXME \fBEste recurso ainda é experimental.\fP Atualmente, \fBxz\fP não é adequado para descompactar o fluxo em tempo real devido à forma como \fBxz\fP faz o buffer. .TP \fB\-\-memlimit\-compress=\fP\fIlimite\fP 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. .IP "" Se as configurações de compactação excederem o \fIlimite\fP, \fBxz\fP 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 \fIlimite\fP e, finalmente, reduzindo o tamanho do dicionário LZMA2. .IP "" Ao compactar com \fB\-\-format=raw\fP ou se \fB\-\-no\-adjust\fP tiver sido especificado, apenas o número de threads pode ser reduzido, pois isso pode ser feito sem afetar a saída compactada. .IP "" Se o \fIlimite\fP não puder ser alcançado mesmo com os ajustes descritos acima, um erro será exibido e \fBxz\fP sairá com status de saída 1. .IP "" O \fIlimite\fP pode ser especificado de várias maneiras: .RS .IP \(bu 3 O \fIlimite\fP pode ser um valor absoluto em bytes. Usar um sufixo inteiro como \fBMiB\fP pode ser útil. Exemplo: \fB\-\-memlimit\-compress=80MiB\fP .IP \(bu 3 O \fIlimite\fP 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 \fBXZ_DEFAULTS\fP 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: \fB\-\-memlimit\-compress=70%\fP .IP \(bu 3 O \fIlimite\fP pode ser redefinido para seu valor padrão, definindo\-o como \fB0\fP. Atualmente, isso equivale a definir \fIlimite\fP como \fBmax\fP (sem limite de uso de memória). .RE .IP "" Para \fBxz\fP de 32 bits, há um caso especial: se o \fIlimite\fP estiver acima de \fB4020\ MiB\fP, o \fIlimite\fP é definido como \fB4020\ MiB\fP. No MIPS32 \fB2000\ MiB\fP é usado em seu lugar. (Os valores \fB0\fP e \fBmax\fP 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. .IP "" Consulte também a seção \fBUso de memória\fP. .TP \fB\-\-memlimit\-decompress=\fP\fIlimite\fP Define um limite de uso de memória para descompactação. Isso também afeta o modo \fB\-\-list\fP. Se a operação não for possível sem exceder o \fIlimite\fP, \fBxz\fP exibirá um erro e a descompactação do arquivo falhará. Consulte \fB\-\-memlimit\-compress=\fP\fIlimite\fP para possíveis maneiras de especificar o \fIlimite\fP. .TP \fB\-\-memlimit\-mt\-decompress=\fP\fIlimite\fP 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 \fBxz\fP se recuse a descompactar um arquivo. Se \fIlimite\fP for muito baixo para permitir qualquer multi\-thread, o \fIlimite\fP será ignorado e \fBxz\fP continuará no modo de thread única. Observe que se \fB\-\-memlimit\-decompress\fP também for usado, ele sempre se aplicará aos modos de thread única e multi\-thread e, portanto, o \fIlimite\fP efetivo para multi\-threading nunca será maior que o limite definido com \fB\-\-memlimit\-decompress\fP. .IP "" Em contraste com as outras opções de limite de uso de memória, \fB\-\-memlimit\-mt\-decompress=\fP\fIlimite\fP tem um padrão \fIlimite\fP específico do sistema. \fBxz \-\-info\-memory\fP pode ser usado para ver o valor atual. .IP "" 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 \fIlimite\fP padrão for muito baixo em seu sistema, sinta\-se à vontade para aumentar o \fIlimite\fP, mas nunca defina\-o para um valor maior que a quantidade de RAM utilizável, pois com os arquivos de entrada apropriados \fBxz\fP 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. .IP "" Consulte \fB\-\-memlimit\-compress=\fP\fIlimite\fP para possíveis maneiras de especificar o \fIlimite\fP. Definir \fIlimite\fP como \fB0\fP redefine \fIlimite\fP para o valor padrão específico do sistema. .TP \fB\-M\fP \fIlimite\fP, \fB\-\-memlimit=\fP\fIlimite\fP, \fB\-\-memory=\fP\fIlimite\fP Isso é equivalente a especificar \fB\-\-memlimit\-compress=\fP\fIlimite\fP \fB\-\-memlimit\-decompress=\fP\fIlimite\fP \fB\-\-memlimit\-mt\-decompress=\fP\fIlimite\fP. .TP \fB\-\-no\-adjust\fP 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 \fBxz\fP 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. .IP "" O ajuste automático é sempre desativado ao criar fluxos brutos (\fB\-\-format=raw\fP). .TP \fB\-T\fP \fIthreads\fP, \fB\-\-threads=\fP\fIthreads\fP Especifica o número de threads de trabalho a serem usados. Definir \fIthreads\fP para um valor especial \fB0\fP faz com que \fBxz\fP use tantos threads quanto o(s) processador(es) no suporte do sistema. O número real de encadeamentos pode ser menor que \fIthreads\fP 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. .IP "" 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 \fIthreads\fP como \fB1\fP usará o modo de thread única. Definir \fIthreads\fP para qualquer outro valor, incluindo \fB0\fP, usará o compressor de várias threads, mesmo que o sistema tenha suporte a apenas uma thread de hardware. (\fBxz\fP 5.2.x usou o modo de thread única nesta situação.) .IP "" Para usar o modo de várias threads com apenas uma thread, defina \fIthreads\fP como \fB+1\fP. O prefixo \fB+\fP não tem efeito com valores diferentes de \fB1\fP. Um limite de uso de memória ainda pode fazer \fBxz\fP alternar para o modo de thread única, a menos que \fB\-\-no\-adjust\fP seja usado. O suporte para o prefixo \fB+\fP foi adicionado no \fBxz\fP 5.4.0. .IP "" 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á \fBxz\fP de compactar ou descompactar. Este limite flexível padrão não fará com que \fBxz\fP alterne do modo de várias threads para o modo de thread única. Os limites ativos podem ser vistos com \fBxz \-\-info\-memory\fP. .IP "" 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 \fB\-\-block\-size=\fP\fItamanho\fP. .IP "" 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 \fB\-\-block\-size=\fP\fItamanho\fP tiver sido usado. .IP "" The default value for \fIthreads\fP is \fB0\fP. In \fBxz\fP 5.4.x and older the default is \fB1\fP. . .SS "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 (\fB\-0\fP \&...\& \fB\-9\fP e \fB\-\-extreme\fP) 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. .PP 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. .PP 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. .PP A custom filter chain can be specified in two different ways. The options \fB\-\-filters=\fP\fIfilters\fP and \fB\-\-filters1=\fP\fIfilters\fP \&...\& \fB\-\-filters9=\fP\fIfilters\fP 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 (\fB\-\-format=raw\fP), 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 (\fB\-\-filters=\fP\fIfilters\fP) will be forgotten. Individual filters specified after the full chain option will reset the filter chain. .PP Both the full and individual filter options take filter\-specific \fIoptions\fP as a comma\-separated list. Extra commas in \fIoptions\fP are ignored. Every option has a default value, so specify those you want to change. .PP Para ver toda a cadeia de filtros e \fIopções\fP, use \fBxz \-vv\fP (isto é, use \fB\-\-verbose\fP duas vezes). Isso também funciona para visualizar as opções da cadeia de filtros usadas pelas predefinições. .TP \fB\-\-filters=\fP\fIfilters\fP Specify the full filter chain or a preset in a single option. Each filter can be separated by spaces or two dashes (\fB\-\-\fP). \fIfilters\fP may need to be quoted on the shell command line so it is parsed as a single option. To denote \fIoptions\fP, use \fB:\fP or \fB=\fP. A preset can be prefixed with a \fB\-\fP and followed with zero or more flags. The only supported flag is \fBe\fP to apply the same options as \fB\-\-extreme\fP. .TP \fB\-\-filters1\fP=\fIfilters\fP ... \fB\-\-filters9\fP=\fIfilters\fP Specify up to nine additional filter chains that can be used with \fB\-\-block\-list\fP. .IP "" 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. .TP \fB\-\-filters\-help\fP Display a help message describing how to specify presets and custom filter chains in the \fB\-\-filters\fP and \fB\-\-filters1=\fP\fIfilters\fP \&...\& \fB\-\-filters9=\fP\fIfilters\fP options, and exit successfully. .TP \fB\-\-lzma1\fP[\fB=\fP\fIopções\fP] .PD 0 .TP \fB\-\-lzma2\fP[\fB=\fP\fIopções\fP] .PD Adiciona o filtro LZMA1 ou LZMA2 à cadeia de filtros. Esses filtros podem ser usados apenas como o último filtro na cadeia. .IP "" LZMA1 é um filtro legado, que é suportado quase exclusivamente devido ao formato de arquivo legado \fB.lzma\fP, que suporta apenas LZMA1. LZMA2 é uma versão atualizada do LZMA1 para corrigir alguns problemas práticos do LZMA1. O formato \fB.xz\fP 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. .IP "" LZMA1 e LZMA2 compartilham o mesmo conjunto de \fIopções\fP: .RS .TP \fBpreset=\fP\fIpredefinição\fP Redefine todas as \fIopções\fP de LZMA1 ou LZMA2 para \fIpredefinição\fP. \fIPredefinição\fP consiste em um número inteiro, que pode ser seguido por modificadores de predefinição de uma única letra. O inteiro pode ser de \fB0\fP a \fB9\fP, correspondendo às opções de linha de comando \fB\-0\fP \&...\& \fB\-9\fP. O único modificador suportado atualmente é \fBe\fP, que corresponde a \fB\-\-extreme\fP. Se nenhum \fBpreset\fP for especificado, os valores padrão das \fIopções\fP LZMA1 ou LZMA2 serão obtidos da predefinição \fB6\fP. .TP \fBdict=\fP\fItamanho\fP O \fItamanho\fP 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 \fItamanho\fP geralmente melhora a taxa de compactação, mas um dicionário maior que o arquivo não compactado é um desperdício de memória. .IP "" Um \fItamanho\fP 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. .IP "" O \fItamanho\fP de dicionário e o localizador de correspondência (\fImf\fP) juntos determinam o uso de memória do codificador LZMA1 ou LZMA2. O mesmo (ou maior) \fItamanho\fP 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 \fB.xz\fP armazenam o \fItamanho\fP de dicionário como 2^\fIn\fP ou 2^\fIn\fP + 2^(\fIn\fP\-1), então esses \fItamanhos\fP são um tanto preferidos para compactação. Outros \fItamanhos\fP serão arredondados quando armazenados nos cabeçalhos \fB.xz\fP. .TP \fBlc=\fP\fIlc\fP 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 \fIlc\fP e \fIlp\fP não deve exceder 4. .IP "" 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. .IP "" A codificação literal assume que os bits \fIlc\fP 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 \fIlc\fP é pelo menos 3, a codificação literal pode aproveitar essa propriedade nos dados não compactados. .IP "" O valor padrão (3) geralmente é bom. Se você deseja compactação máxima, experimente \fBlc=4\fP. Às vezes ajuda um pouco, às vezes piora a compactação. Se piorar, experimente \fBlc=2\fP também. .TP \fBlp=\fP\fIlp\fP Especifica o número de bits de posição literal. O mínimo é 0 e o máximo é 4; o padrão é 0. .IP "" \fILp\fP afeta que tipo de alinhamento nos dados não compactados é assumido ao codificar literais. Consulte \fIpb\fP abaixo para obter mais informações sobre alinhamento. .TP \fBpb=\fP\fIpb\fP Especifica o número de bits de posição. O mínimo é 0 e o máximo é 4; o padrão é 2. .IP "" \fIPb\fP afeta que tipo de alinhamento nos dados não compactados é assumido em geral. O padrão significa alinhamento de quatro bytes (2^\fIpb\fP=2^2=4), que geralmente é uma boa escolha quando não há melhor estimativa. .IP "" Quando o alinhamento é conhecido, definir \fIpb\fP 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 \fBpb=0\fP pode melhorar um pouco a compactação. Para texto UTF\-16, \fBpb=1\fP é uma boa escolha. Se o alinhamento for um número ímpar como 3 bytes, \fBpb=0\fP pode ser a melhor escolha. .IP "" Embora o alinhamento assumido possa ser ajustado com \fIpb\fP e \fIlp\fP, 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. .TP \fBmf=\fP\fImf\fP 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 \fIpredefinição\fP: 0 usa \fBhc3\fP, 1\(en3 usa \fBhc4\fP e o resto usa \fBbt4\fP. .IP "" 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 \fIdict\fP é uma potência de dois. .RS .TP \fBhc3\fP Cadeia de hashs com hashing de 2 e 3 bytes .br Valor mínimo para \fInice\fP: 3 .br Uso de memória: .br \fIdict\fP * 7.5 (if \fIdict\fP <= 16 MiB); .br \fIdict\fP * 5.5 + 64 MiB (if \fIdict\fP > 16 MiB) .TP \fBhc4\fP Cadeia de hashs com hashing de 2, 3 e 4 bytes .br Valor mínimo para \fInice\fP: 4 .br Uso de memória: .br \fIdict\fP * 7.5 (if \fIdict\fP <= 32 MiB); .br \fIdict\fP * 6.5 (if \fIdict\fP > 32 MiB) .TP \fBbt2\fP Árvore binária com hashing de 2 bytes .br Valor mínimo para \fInice\fP: 2 .br Uso de memória: \fIdict\fP * 9.5 .TP \fBbt3\fP Árvore binária com hashing de 2 e 3 bytes .br Valor mínimo para \fInice\fP: 3 .br Uso de memória: .br \fIdict\fP * 11.5 (if \fIdict\fP <= 16 MiB); .br \fIdict\fP * 9.5 + 64 MiB (if \fIdict\fP > 16 MiB) .TP \fBbt4\fP Árvore binária com hashing de 2, 3 e 4 bytes .br Valor mínimo para \fInice\fP: 4 .br Uso de memória: .br \fIdict\fP * 11.5 (if \fIdict\fP <= 32 MiB); .br \fIdict\fP * 10.5 (if \fIdict\fP > 32 MiB) .RE .TP \fBmode=\fP\fImodo\fP O \fImodo\fP de compactação especifica o método para analisar os dados produzidos pelo localizador de correspondência. Os \fImodos\fP suportados são \fBfast\fP e \fBnormal\fP. O padrão é \fBfast\fP para \fIpredefinições\fP 0\(en3 e \fBnormal\fP para \fIpredefinições\fP 4\(en9. .IP "" Normalmente, \fBfast\fP é usado com localizadores de correspondência cadeia de hashs e \fBnormal\fP com localizadores de correspondência de árvore binária. Isso também é o que os \fIpredefinições\fP fazem. .TP \fBnice=\fP\fInice\fP Especifica o que é considerado um bom comprimento para uma correspondência. Uma vez que uma correspondência de pelo menos \fInice\fP bytes é encontrada, o algoritmo para de procurar correspondências possivelmente melhores. .IP "" \fINice\fP pode ser 2\(en273 bytes. Valores mais altos tendem a fornecer melhor taxa de compactação em detrimento da velocidade. O padrão depende do \fIpredefinição\fP. .TP \fBdepth=\fP\fIprofundidade\fP 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 \fIprofundidade\fP razoável de \fImf\fP e \fInice\fP. .IP "" Uma \fIprofundidade\fP razoável para cadeias de hash é 4\(en100 e 16\(en1000 para árvores binárias. Usar valores muito altos para \fIprofundidade\fP pode tornar o codificador extremamente lento com alguns arquivos. Evite definir \fIprofundidade\fP acima de 1000 a menos que você esteja preparado para interromper a compactação caso ela esteja demorando muito. .RE .IP "" Ao decodificar fluxos brutos (\fB\-\-format=raw\fP), o LZMA2 precisa apenas do dicionário \fItamanho\fP. LZMA1 também precisa de \fIlc\fP, \fIlp\fP e \fIpb\fP. .TP \fB\-\-x86\fP[\fB=\fP\fIopções\fP] .PD 0 .TP \fB\-\-arm\fP[\fB=\fP\fIopções\fP] .TP \fB\-\-armthumb\fP[\fB=\fP\fIopções\fP] .TP \fB\-\-arm64\fP[\fB=\fP\fIopções\fP] .TP \fB\-\-powerpc\fP[\fB=\fP\fIopções\fP] .TP \fB\-\-ia64\fP[\fB=\fP\fIopções\fP] .TP \fB\-\-sparc\fP[\fB=\fP\fIopções\fP] .TP \fB\-\-riscv\fP[\fB=\fP\fIopções\fP] .PD 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. .IP "" 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 \fB.xz\fP 0\(en15\ % 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. .IP "" Esses filtros BCJ têm problemas conhecidos relacionados à taxa de compactação: .RS .IP \(bu 3 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. .IP \(bu 3 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. .RE .IP "" 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. .RS .RS .PP .TS tab(;); l n l l n l. 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; .TE .RE .RE .IP "" 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: .RS .IP \(bu 3 IA\-64 filter has 16\-byte alignment so \fBpb=4,lp=4,lc=0\fP is good with LZMA2 (2^4=16). .IP \(bu 3 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, \fBpb=2,lp=1,lc=3\fP or \fBpb=1,lp=1,lc=3\fP is good. When 16\-bit instructions aren't present, \fBpb=2,lp=2,lc=2\fP is the best. \fBreadelf \-h\fP can be used to check if "RVC" appears on the "Flags" line. .IP \(bu 3 ARM64 is always 4\-byte aligned so \fBpb=2,lp=2,lc=2\fP is the best. .IP \(bu 3 The x86 filter is an exception. It's usually good to stick to LZMA2's defaults (\fBpb=2,lp=0,lc=3\fP) when compressing x86 executables. .RE .IP "" Todos os filtros BCJ suportam as mesmas \fIopções\fP: .RS .TP \fBstart=\fP\fIdeslocamento\fP Especifica o \fIdeslocamento\fP inicial que é usado na conversão entre endereços relativos e absolutos. O \fIdeslocamento\fP 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 \fIdeslocamento\fP personalizado quase nunca é útil. .RE .TP \fB\-\-delta\fP[\fB=\fP\fIopções\fP] Adiciona o filtro Delta à cadeia de filtros. O filtro Delta só pode ser usado como filtro não\-último na cadeia de filtros. .IP "" 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 \fBflac\fP(1). .IP "" \fIOpções\fP suportadas: .RS .TP \fBdist=\fP\fIdistância\fP Especifica a \fIdistância\fP do cálculo delta em bytes. \fIdistância\fP deve ser 1\(en256. O padrão é 1. .IP "" Por exemplo, com \fBdist=2\fP 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. .RE . .SS "Outras opções" .TP \fB\-q\fP, \fB\-\-quiet\fP 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. .TP \fB\-v\fP, \fB\-\-verbose\fP Ser detalhado. Se o erro padrão estiver conectado a um terminal, \fBxz\fP exibirá um indicador de progresso. Especifique \fB\-\-verbose\fP duas vezes dará uma saída ainda mais detalhada. .IP "" O indicador de progresso mostra as seguintes informações: .RS .IP \(bu 3 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). .IP \(bu 3 Quantidade de dados compactados produzidos (compactando) ou consumidos (descompactando). .IP \(bu 3 Quantidade de dados não compactados consumidos (compactação) ou produzidos (descompactação). .IP \(bu 3 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. .IP \(bu 3 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 \fBxz\fP começou a processar o arquivo. .IP \(bu 3 Tempo decorrido no formato M:SS ou H:MM:SS. .IP \(bu 3 O tempo restante estimado é mostrado apenas quando o tamanho do arquivo de entrada é conhecido e alguns segundos já se passaram desde que \fBxz\fP 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. .RE .IP "" Quando o erro padrão não é um terminal, \fB\-\-verbose\fP fará com que \fBxz\fP 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. .TP \fB\-Q\fP, \fB\-\-no\-warn\fP 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 \fB\-\-quiet\fP quanto \fB\-\-no\-warn\fP devem ser usados para não exibir avisos e não alterar o status de saída. .TP \fB\-\-robot\fP Imprime mensagens em um formato analisável por máquina. Isso visa facilitar a criação de frontends que desejam usar \fBxz\fP 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 \fBxz\fP. Consulte a seção \fBMODO ROBÔ\fP para obter detalhes. .TP \fB\-\-info\-memory\fP Exibe, em formato legível por humanos, quanta memória física (RAM) e quantos threads de processador \fBxz\fP acredita que o sistema possui e os limites de uso de memória para compactação e descompactação e saia com êxito. .TP \fB\-h\fP, \fB\-\-help\fP Exibe uma mensagem de ajuda descrevendo as opções mais usadas e sai com sucesso. .TP \fB\-H\fP, \fB\-\-long\-help\fP Exibe uma mensagem de ajuda descrevendo todos os recursos de \fBxz\fP e sai com sucesso .TP \fB\-V\fP, \fB\-\-version\fP Exibe o número da versão de \fBxz\fP e liblzma em formato legível por humanos. Para obter uma saída analisável por máquina, especifique \fB\-\-robot\fP antes de \fB\-\-version\fP. . .SH "MODO ROBÔ" The robot mode is activated with the \fB\-\-robot\fP option. It makes the output of \fBxz\fP easier to parse by other programs. Currently \fB\-\-robot\fP is supported only together with \fB\-\-list\fP, \fB\-\-filters\-help\fP, \fB\-\-info\-memory\fP, and \fB\-\-version\fP. It will be supported for compression and decompression in the future. . .SS "Modo lista" \fBxz \-\-robot \-\-list\fP 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: .TP \fBname\fP Esta é sempre a primeira linha ao começar a listar um arquivo. A segunda coluna na linha é o nome do arquivo. .TP \fBfile\fP Esta linha contém informações gerais sobre o arquivo \fB.xz\fP. Esta linha é sempre impressa após a linha \fBname\fP. .TP \fBstream\fP Este tipo de linha é usado somente quando \fB\-\-verbose\fP foi especificado. Existem tantas linhas de \fBstream\fP quanto fluxos no arquivo \&\fB.xz\fP. .TP \fBblock\fP Este tipo de linha é usado somente quando \fB\-\-verbose\fP foi especificado. Existem tantas linhas \fBblock\fP quanto blocos no arquivo \&\fB.xz\fP. As linhas \fBblock\fP são mostradas após todas as linhas \fBstream\fP; diferentes tipos de linha não são intercalados. .TP \fBsummary\fP Este tipo de linha é usado apenas quando \fB\-\-verbose\fP foi especificado duas vezes. Esta linha é impressa após todas as linhas de \fBblock\fP. Assim como a linha \fBarquivo\fP, a linha \fBsummary\fP contém informações gerais sobre o arquivo \fB.xz\fP. .TP \fBtotals\fP Esta linha é sempre a última linha da saída da lista. Ele mostra as contagens totais e tamanhos. .PP As colunas das linhas \fBfile\fP: .PD 0 .RS .IP 2. 4 Número de fluxos no arquivo .IP 3. 4 Número total de blocos no(s) fluxo(s) .IP 4. 4 Tamanho compactado do arquivo .IP 5. 4 Uncompressed size of the file .IP 6. 4 Taxa de compactação, por exemplo, \fB0.123\fP. Se a proporção for superior a 9.999, serão exibidos três traços (\fB\-\-\-\fP) em vez da proporção. .IP 7. 4 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: \fBNone\fP, \fBCRC32\fP, \fBCRC64\fP e \fBSHA\-256\fP. Para tipos de verificações desconhecidos, \fBUnknown\-\fP\fIN\fP é usado, onde \fIN\fP é o ID do cheque como um número decimal (um ou dois dígitos). .IP 8. 4 Tamanho total do preenchimento de fluxo no arquivo .RE .PD .PP As colunas das linhas \fBstream\fP: .PD 0 .RS .IP 2. 4 Número do fluxo (o primeiro fluxo é 1) .IP 3. 4 Número de blocos no fluxo .IP 4. 4 Deslocamento inicial compactado .IP 5. 4 Deslocamento inicial descompactado .IP 6. 4 Tamanho compactado (não inclui preenchimento de fluxo) .IP 7. 4 Tamanho descompactado .IP 8. 4 Taxa de compactação .IP 9. 4 Nome da verificação de integridade .IP 10. 4 Tamanho do preenchimento do fluxo .RE .PD .PP As colunas das linhas \fBblock\fP: .PD 0 .RS .IP 2. 4 Número do fluxo que contém este bloco .IP 3. 4 Número do bloco relativo ao início do fluxo (o primeiro bloco é 1) .IP 4. 4 Número do bloco relativo ao início do arquivo .IP 5. 4 Deslocamento inicial compactado em relação ao início do arquivo .IP 6. 4 Deslocamento inicial descompactado em relação ao início do arquivo .IP 7. 4 Tamanho total compactado do bloco (inclui cabeçalhos) .IP 8. 4 Tamanho descompactado .IP 9. 4 Taxa de compactação .IP 10. 4 Nome da verificação de integridade .RE .PD .PP Se \fB\-\-verbose\fP for especificado duas vezes, colunas adicionais serão incluídas nas linhas \fBblock\fP. Eles não são exibidos com um único \fB\-\-verbose\fP, porque obter essas informações requer muitas buscas e, portanto, pode ser lento: .PD 0 .RS .IP 11. 4 Valor da verificação de integridade em hexadecimal .IP 12. 4 Tamanho do cabeçalho do bloco .IP 13. 4 Sinalizadores de bloco: \fBc\fP indica que o tamanho compactado está presente e \fBu\fP indica que o tamanho não compactado está presente. Se o sinalizador não estiver definido, um traço (\fB\-\fP) será exibido para manter o comprimento da string fixo. Novos sinalizadores podem ser adicionados ao final da string no futuro. .IP 14. 4 Tamanho dos dados reais compactados no bloco (isso exclui o cabeçalho do bloco, o preenchimento do bloco e os campos de verificação) .IP 15. 4 Quantidade de memória (em bytes) necessária para descompactar este bloco com esta versão \fBxz\fP .IP 16. 4 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 \fB.xz\fP. .RE .PD .PP As colunas das linhas \fBsummary\fP: .PD 0 .RS .IP 2. 4 Quantidade de memória (em bytes) necessária para descompactar este arquivo com esta versão do \fBxz\fP .IP 3. 4 \fByes\fP ou \fBno\fP indicando se todos os cabeçalhos de bloco têm tamanho compactado e tamanho não compactado armazenados neles .PP \fIDesde\fP \fBxz\fP \fI5.1.2alpha:\fP .IP 4. 4 Versão mínima do \fBxz\fP necessária para descompactar o arquivo .RE .PD .PP As colunas da linha \fBtotals\fP: .PD 0 .RS .IP 2. 4 Número de fluxos .IP 3. 4 Número de blocos .IP 4. 4 Tamanho compactado .IP 5. 4 Tamanho descompactado .IP 6. 4 Taxa de compactação média .IP 7. 4 Lista separada por vírgulas de nomes de verificação de integridade que estavam presentes nos arquivos .IP 8. 4 Tamanho do preenchimento do fluxo .IP 9. 4 Número de arquivos. Isso está aqui para manter a ordem das colunas anteriores a mesma das linhas \fBfile\fP. .PD .RE .PP Se \fB\-\-verbose\fP for especificado duas vezes, colunas adicionais serão incluídas na linha \fBtotals\fP: .PD 0 .RS .IP 10. 4 Quantidade máxima de memória (em bytes) necessária para descompactar os arquivos com esta versão do \fBxz\fP .IP 11. 4 \fByes\fP ou \fBno\fP indicando se todos os cabeçalhos de bloco têm tamanho compactado e tamanho não compactado armazenados neles .PP \fIDesde\fP \fBxz\fP \fI5.1.2alpha:\fP .IP 12. 4 Versão mínima do \fBxz\fP necessária para descompactar o arquivo .RE .PD .PP 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. . .SS "Filters help" \fBxz \-\-robot \-\-filters\-help\fP prints the supported filters in the following format: .PP \fIfilter\fP\fB:\fP\fIoption\fP\fB=<\fP\fIvalue\fP\fB>,\fP\fIoption\fP\fB=<\fP\fIvalue\fP\fB>\fP... .TP \fIfilter\fP Name of the filter .TP \fIoption\fP Name of a filter specific option .TP \fIvalue\fP Numeric \fIvalue\fP ranges appear as \fB<\fP\fImin\fP\fB\-\fP\fImax\fP\fB>\fP. String \fIvalue\fP choices are shown within \fB< >\fP and separated by a \fB|\fP character. .PP Each filter is printed on its own line. . .SS "Informações de limite de memória" \fBxz \-\-robot \-\-info\-memory\fP prints a single line with multiple tab\-separated columns: .IP 1. 4 Quantidade total de memória física (RAM) em bytes. .IP 2. 4 Limite de uso de memória para compactação em bytes (\fB\-\-memlimit\-compress\fP). Um valor especial de \fB0\fP indica a configuração padrão que para o modo de thread única é o mesmo que sem limite. .IP 3. 4 Limite de uso de memória para descompactação em bytes (\fB\-\-memlimit\-decompress\fP). Um valor especial de \fB0\fP indica a configuração padrão que para o modo de thread única é o mesmo que sem limite. .IP 4. 4 Desde \fBxz\fP 5.3.4alpha: Uso de memória para descompactação com várias thread em bytes (\fB\-\-memlimit\-mt\-decompress\fP). 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 \fB\-\-memlimit\-mt\-decompress\fP. .IP 5. 4 Desde \fBxz\fP 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 (\fB\-\-threads=0\fP) e nenhum limite de uso de memória foi especificado (\fB\-\-memlimit\-compress\fP). Isso também é usado como o valor padrão para \fB\-\-memlimit\-mt\-decompress\fP. .IP 6. 4 Desde \fBxz\fP 5.3.4alpha: Número de threads de processador disponíveis. .PP No futuro, a saída de \fBxz \-\-robot \-\-info\-memory\fP pode ter mais colunas, mas nunca mais do que uma única linha. . .SS Versão \fBxz \-\-robot \-\-version\fP prints the version number of \fBxz\fP and liblzma in the following format: .PP \fBXZ_VERSION=\fP\fIXYYYZZZS\fP .br \fBLIBLZMA_VERSION=\fP\fIXYYYZZZS\fP .TP \fIX\fP Versão principal. .TP \fIYYY\fP Versão menor. Números pares são estáveis. Os números ímpares são versões alfa ou beta. .TP \fIZZZ\fP Nível de patch para versões estáveis ou apenas um contador para versões de desenvolvimento. .TP \fIS\fP Estabilidade. 0 é alfa, 1 é beta e 2 é estável. \fIS\fP deve ser sempre 2 quando \fIYYY\fP for par. .PP \fIXYYYZZZS\fP são iguais em ambas as linhas se \fBxz\fP e liblzma forem da mesma versão do XZ Utils. .PP Exemplos: 4.999.9beta é \fB49990091\fP e 5.0.0 é \fB50000002\fP. . .SH "STATUS DE SAÍDA" .TP \fB0\fP Está tudo bem. .TP \fB1\fP Ocorreu um erro. .TP \fB2\fP Algo digno de um aviso ocorreu, mas ocorreu nenhum erro real. .PP Observações (não avisos ou erros) impressas no erro padrão não afetam o status de saída. . .SH AMBIENTE \fBxz\fP analisa listas de opções separadas por espaços das variáveis de ambiente \fBXZ_DEFAULTS\fP e \fBXZ_OPT\fP, 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 \fBgetopt_long\fP(3) que também é usado para os argumentos da linha de comando. .TP \fBXZ_DEFAULTS\fP Opções padrão específicas do usuário ou de todo o sistema. Normalmente, isso é definido em um script de inicialização do shell para habilitar o limitador de uso de memória do \fBxz\fP por padrão. Excluindo scripts de inicialização de shell e casos especiais semelhantes, os scripts nunca devem definir ou remover a definição de \fBXZ_DEFAULTS\fP. .TP \fBXZ_OPT\fP Isso é para passar opções para \fBxz\fP quando não é possível definir as opções diretamente na linha de comando \fBxz\fP. Este é o caso quando \fBxz\fP é executado por um script ou ferramenta, por exemplo, GNU \fBtar\fP(1): .RS .RS .PP .nf \f(CWXZ_OPT=\-2v tar caf foo.tar.xz foo\fP .fi .RE .RE .IP "" Os scripts podem usar \fBXZ_OPT\fP, por exemplo, para definir opções de compactação padrão específicas do script. Ainda é recomendável permitir que os usuários substituam \fBXZ_OPT\fP se isso for razoável. Por exemplo, em scripts \fBsh\fP(1) pode\-se usar algo assim: .RS .RS .PP .nf \f(CWXZ_OPT=${XZ_OPT\-"\-7e"} export XZ_OPT\fP .fi .RE .RE . .SH "COMPATIBILIDADE COM LZMA UTILS" A sintaxe da linha de comando do \fBxz\fP é praticamente um superconjunto de \fBlzma\fP, \fBunlzma\fP e \fBlzcat\fP 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. . .SS "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 \fBxz\fP 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. .RS .PP .TS tab(;); c c c c n n. 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 .TE .RE .PP 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: .RS .PP .TS tab(;); c c c c n n. 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 .TE .RE .PP O nível de predefinição padrão no LZMA Utils é \fB\-7\fP enquanto no XZ Utils é \fB\-6\fP, então ambos usam um dicionário de 8 MiB por padrão. . .SS "Arquivos .lzma em um fluxo versus sem ser em um fluxo" O tamanho descompactado do arquivo pode ser armazenado no cabeçalho de \&\fB.lzma\fP. 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). .PP \fBxz\fP oferece suporte à descompactação de arquivos \fB.lzma\fP com ou sem marcador de fim de carga útil, mas todos os arquivos \fB.lzma\fP criados por \fBxz\fP usarão marcador de fim de carga útil e terão o tamanho descompactado marcado como desconhecido no cabeçalho de \fB.lzma\fP. Isso pode ser um problema em algumas situações incomuns. Por exemplo, um descompactador de \&\fB.lzma\fP 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 \fB.lzma\fP com tamanho descompactado conhecido. . .SS "Arquivos .lzma não suportados" O formato \fB.lzma\fP permite valores \fIlc\fP até 8 e valores \fIlp\fP até 4. LZMA Utils pode descompactar arquivos com qualquer \fIlc\fP e \fIlp\fP, mas sempre cria arquivos com \fBlc=3\fP e \fBlp=0\fP. Criar arquivos com outros \fIlc\fP e \fIlp\fP é possível com \fBxz\fP e com LZMA SDK. .PP A implementação do filtro LZMA1 em liblzma requer que a soma de \fIlc\fP e \fIlp\fP não exceda 4. Assim, arquivos \fB.lzma\fP, que excedam esta limitação, não podem ser descompactados com \fBxz\fP. .PP LZMA Utils cria apenas arquivos \fB.lzma\fP que possuem um tamanho de dicionário de 2^\fIn\fP (uma potência de 2), mas aceita arquivos com qualquer tamanho de dicionário. liblzma aceita apenas arquivos \fB.lzma\fP que tenham um tamanho de dicionário de 2^\fIn\fP ou 2^\fIn\fP + 2^(\fIn\fP\-1). Isso é para diminuir os falsos positivos ao detectar arquivos \fB.lzma\fP. .PP Essas limitações não devem ser um problema na prática, já que praticamente todos os arquivos \fB.lzma\fP foram compactados com configurações que o liblzma aceitará. . .SS "Lixo à direita" Ao descompactar, o LZMA Utils silenciosamente ignora tudo após o primeiro fluxo \fB.lzma\fP. 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 \&\fB.lzma\fP concatenados. .PP Se houver dados restantes após o primeiro fluxo de \fB.lzma\fP, \fBxz\fP considera o arquivo corrompido, a menos que \fB\-\-single\-stream\fP tenha sido usado. Isso pode quebrar scripts obscuros que presumiram que o lixo à direita é ignorado. . .SH NOTAS . .SS "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. .PP A informação acima significa que, uma vez que \fB\-\-rsyncable\fP 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. . .SS "Descompactadores .xz embarcados" As implementações do descompactador \fB.xz\fP embarcados, como o XZ Embedded, não oferecem necessariamente suporte a arquivos criados com tipos de \fIverificações\fP de integridade diferentes de \fBnone\fP e \fBcrc32\fP. Como o padrão é \fB\-\-check=crc64\fP, você deve usar \fB\-\-check=none\fP ou \fB\-\-check=crc32\fP ao criar arquivos para sistemas embarcados. .PP Fora dos sistemas embarcados, todos os descompactadores de formato \fB.xz\fP oferecem suporte a todos os tipos de \fIverificação\fP ou, pelo menos, são capazes de descompactar o arquivo sem verificar a verificação de integridade se a \fIverificação\fP específica não for suportada. .PP XZ Embedded oferece suporte a filtros BCJ, mas apenas com o deslocamento inicial padrão. . .SH EXEMPLOS . .SS Básico Compactar o arquivo \fIfoo\fP em \fIfoo.xz\fP usando o nível de compactação padrão (\fB\-6\fP) e remover \fIfoo\fP se a compactação for bem\-sucedida: .RS .PP .nf \f(CWxz foo\fP .fi .RE .PP Descompactar \fIbar.xz\fP em \fIbar\fP e não remover \fIbar.xz\fP mesmo se a descompactação for bem\-sucedida: .RS .PP .nf \f(CWxz \-dk bar.xz\fP .fi .RE .PP Criar \fIbaz.tar.xz\fP com a predefinição \fB\-4e\fP (\fB\-4 \-\-extreme\fP), que é mais lenta que o padrão \fB\-6\fP, mas precisa de menos memória para compactação e descompactação (48 \ MiB e 5\ MiB, respectivamente): .RS .PP .nf \f(CWtar cf \- baz | xz \-4e > baz.tar.xz\fP .fi .RE .PP Uma mistura de arquivos compactados e descompactados pode ser descompactada para a saída padrão com um único comando: .RS .PP .nf \f(CWxz \-dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt\fP .fi .RE . .SS "Compactação paralela de muitos arquivos" No GNU e *BSD, \fBfind\fP(1) e \fBxargs\fP(1) podem ser usados para paralelizar a compactação de muitos arquivos: .RS .PP .nf \f(CWfind . \-type f \e! \-name '*.xz' \-print0 \e | xargs \-0r \-P4 \-n16 xz \-T1\fP .fi .RE .PP A opção \fB\-P\fP para \fBxargs\fP(1) define o número de processos paralelos do \fBxz\fP. O melhor valor para a opção \fB\-n\fP 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 \fBxz\fP que \fBxargs\fP(1) eventualmente criará. .PP A opção \fB\-T1\fP para \fBxz\fP existe para forçá\-lo ao modo de thread única, porque \fBxargs\fP(1) é usado para controlar a quantidade de paralelização. . .SS "Modo robô" Calcular quantos bytes foram salvos no total depois de compactar vários arquivos: .RS .PP .nf \f(CWxz \-\-robot \-\-list *.xz | awk '/^totals/{print $5\-$4}'\fP .fi .RE .PP Um script pode querer saber que está usando \fBxz\fP novo o suficiente. O seguinte script \fBsh\fP(1) verifica se o número da versão da ferramenta \fBxz\fP é pelo menos 5.0.0. Este método é compatível com versões beta antigas, que não suportavam a opção \fB\-\-robot\fP: .RS .PP .nf \f(CWif ! eval "$(xz \-\-robot \-\-version 2> /dev/null)" || [ "$XZ_VERSION" \-lt 50000002 ]; then echo "Your xz is too old." fi unset XZ_VERSION LIBLZMA_VERSION\fP .fi .RE .PP Definir um limite de uso de memória para descompactação usando \fBXZ_OPT\fP, mas se um limite já tiver sido definido, não o aumentar: .RS .PP .nf \f(CWNEWLIM=$((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\fP .fi .RE . .SS "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. .PP As colunas CompCPU das tabelas das descrições das opções \fB\-0\fP ... \fB\-9\fP e \fB\-\-extreme\fP são úteis ao personalizar as predefinições LZMA2. Aqui estão as partes relevantes coletadas dessas duas tabelas: .RS .PP .TS tab(;); c c n n. Predefinição;CompCPU \-0;0 \-1;1 \-2;2 \-3;3 \-4;4 \-5;5 \-6;6 \-5e;7 \-6e;8 .TE .RE .PP 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 \fBxz \-8\fP faria, uma predefinição com um valor CompCPU baixo (por exemplo, 1) pode ser modificado para usar um dicionário maior: .RS .PP .nf \f(CWxz \-\-lzma2=preset=1,dict=32MiB foo.tar\fP .fi .RE .PP Com certos arquivos, o comando acima pode ser mais rápido que \fBxz \-6\fP 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. .PP 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 \fBxz \-9\fP usaria: .RS .PP .nf \f(CWxz \-vv \-\-lzma2=dict=192MiB big_foo.tar\fP .fi .RE .PP Usar \fB\-vv\fP (\fB\-\-verbose \-\-verbose\fP) 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. .PP À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 \fB\-6e\fP (\fB\-6 \-\-extreme\fP) como base e define o dicionário como apenas 64\ KiB. O arquivo resultante pode ser descompactado com XZ Embedded (é por isso que existe \fB\-\-check=crc32\fP) usando cerca de 100\ KiB de memória. .RS .PP .nf \f(CWxz \-\-check=crc32 \-\-lzma2=preset=6e,dict=64KiB foo\fP .fi .RE .PP Se você deseja espremer o máximo de bytes possível, ajustar o número de bits de contexto literal (\fIlc\fP) e o número de bits de posição (\fIpb\fP) às vezes pode ajudar. Ajustar o número de bits de posição literal (\fIlp\fP) também pode ajudar, mas geralmente \fIlc\fP e \fIpb\fP 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 \fBxz \-6e\fP (tente também sem \fBlc=4\fP): .RS .PP .nf \f(CWxz \-\-lzma2=preset=6e,pb=0,lc=4 source_code.tar\fP .fi .RE .PP 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: .RS .PP .nf \f(CWxz \-\-x86 \-\-lzma2 libfoo.so\fP .fi .RE .PP Observe que a ordem das opções de filtro é significativa. Se \fB\-\-x86\fP for especificado após \fB\-\-lzma2\fP, \fBxz\fP 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. .PP 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. .PP 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 \fBdist=3\fP, e também é bom passar \fBpb=0\fP para LZMA2 para acomodar o alinhamento de três bytes: .RS .PP .nf \f(CWxz \-\-delta=dist=3 \-\-lzma2=pb=0 foo.tiff\fP .fi .RE .PP Se várias imagens foram colocadas em um único arquivo (por exemplo, \&\fB.tar\fP), o filtro Delta também funcionará, desde que todas as imagens tenham o mesmo número de bytes por pixel. . .SH "VEJA TAMBÉM" \fBxzdec\fP(1), \fBxzdiff\fP(1), \fBxzgrep\fP(1), \fBxzless\fP(1), \fBxzmore\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1), \fB7z\fP(1) .PP XZ Utils: .br XZ Embedded: .br LZMA SDK: