annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/share/man/uk/man1/lzma.1 @ 68:5028fdace37b

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 16:23:26 -0400
parents
children
rev   line source
jpayne@68 1 '\" t
jpayne@68 2 .\" SPDX-License-Identifier: 0BSD
jpayne@68 3 .\"
jpayne@68 4 .\" Authors: Lasse Collin
jpayne@68 5 .\" Jia Tan
jpayne@68 6 .\"
jpayne@68 7 .\" Ukrainian translation for xz-man.
jpayne@68 8 .\" Yuri Chornoivan <yurchor@ukr.net>, 2019, 2022, 2023, 2024.
jpayne@68 9 .\"
jpayne@68 10 .\"*******************************************************************
jpayne@68 11 .\"
jpayne@68 12 .\" This file was generated with po4a. Translate the source file.
jpayne@68 13 .\"
jpayne@68 14 .\"*******************************************************************
jpayne@68 15 .TH XZ 1 2024\-12\-30 Tukaani "XZ Utils"
jpayne@68 16 .
jpayne@68 17 .SH НАЗВА
jpayne@68 18 xz, unxz, xzcat, lzma, unlzma, lzcat — стискання та розпаковування файлів
jpayne@68 19 \&.xz і .lzma
jpayne@68 20 .
jpayne@68 21 .SH "КОРОТКИЙ ОПИС"
jpayne@68 22 \fBxz\fP [\fIпараметр...\fP] [\fIфайл...\fP]
jpayne@68 23 .
jpayne@68 24 .SH "СКОРОЧЕННЯ КОМАНД"
jpayne@68 25 \fBunxz\fP є рівноцінним до \fBxz \-\-decompress\fP.
jpayne@68 26 .br
jpayne@68 27 \fBxzcat\fP є рівноцінним до \fBxz \-\-decompress \-\-stdout\fP.
jpayne@68 28 .br
jpayne@68 29 \fBlzma\fP є рівноцінним до \fBxz \-\-format=lzma\fP.
jpayne@68 30 .br
jpayne@68 31 \fBunlzma\fP є рівноцінним до \fBxz \-\-format=lzma \-\-decompress\fP.
jpayne@68 32 .br
jpayne@68 33 \fBlzcat\fP є рівноцінним до \fBxz \-\-format=lzma \-\-decompress \-\-stdout\fP.
jpayne@68 34 .PP
jpayne@68 35 При написанні скриптів, де потрібно розпаковувати файли, рекомендуємо завжди
jpayne@68 36 використовувати \fBxz\fP із відповідними аргументами (\fBxz \-d\fP або \fBxz \-dc\fP),
jpayne@68 37 замість \fBunxz\fP і \fBxzcat\fP.
jpayne@68 38 .
jpayne@68 39 .SH ОПИС
jpayne@68 40 \fBxz\fP інструмент загального призначення для стискання даних із синтаксисом
jpayne@68 41 командного рядка, подібним для \fBgzip\fP(1) і \fBbzip2\fP(1). Власним форматом
jpayne@68 42 файлів є \fB.xz\fP, але передбачено підтримку застарілого формату \fB.lzma\fP,
jpayne@68 43 який було використано у LZMA Utils, та необроблених потоків стиснених даних
jpayne@68 44 без заголовків формату контейнера. Крім того, передбачено підтримку
jpayne@68 45 розпаковування формату \fB.lz\fP, який використано у \fBlzip\fP.
jpayne@68 46 .PP
jpayne@68 47 \fBxz\fP стискає або розпаковує кожен \fIфайл\fP відповідно до вибраного режиму
jpayne@68 48 дій. Якщо \fIфайли\fP не задано або якщо \fIфайлом\fP є \fB\-\fP, \fBxz\fP читатиме дані
jpayne@68 49 зі стандартного джерела вхідних даних і записуватиме оброблені дані до
jpayne@68 50 стандартного виведення. \fBxz\fP відмовить (покаже повідомлення про помилку і
jpayne@68 51 пропустить \fIфайл\fP) у записів стиснених даних до стандартного виведення,
jpayne@68 52 якщо це термінал. Так само, \fBxz\fP відмовить у читанні стиснених даних зі
jpayne@68 53 стандартного джерела вхідних даних, якщо це термінал.
jpayne@68 54 .PP
jpayne@68 55 Якщо не вказано \fB\-\-stdout\fP, \fIфайли\fP, відмінні від \fB\-\fP, буде записано до
jpayne@68 56 нового файла, чию назву буде визначено з назви початкового \fIфайла\fP:
jpayne@68 57 .IP \(bu 3
jpayne@68 58 При стисканні суфікс формату файла призначення (\fB.xz\fP або \fB.lzma\fP) буде
jpayne@68 59 дописано до назви початкового файла для отримання назви файла призначення.
jpayne@68 60 .IP \(bu 3
jpayne@68 61 При розпаковуванні суфікс \fB.xz\fP, \fB.lzma\fP або \fB.lz\fP буде вилучено з назви
jpayne@68 62 файла для отримання назви файла призначення. Крім того, \fBxz\fP розпізнає
jpayne@68 63 суфікси \fB.txz\fP і \fB.tlz\fP і замінює їх на суфікс \fB.tar\fP.
jpayne@68 64 .PP
jpayne@68 65 Якщо файл призначення вже існує, буде показано повідомлення про помилку, а
jpayne@68 66 \fIфайл\fP буде пропущено.
jpayne@68 67 .PP
jpayne@68 68 Окрім випадку запису до стандартного виведення, \fBxz\fP покаже попередження і
jpayne@68 69 пропустить обробку \fIфайла\fP, якщо буде виконано будь\-яку з таких умов:
jpayne@68 70 .IP \(bu 3
jpayne@68 71 \fIФайл\fP не є звичайним файлом. Програма не переходитиме за символічними
jpayne@68 72 посиланнями, а отже, не вважатиме їх звичайними файлами.
jpayne@68 73 .IP \(bu 3
jpayne@68 74 На \fIфайл\fP існує декілька жорстких посилань.
jpayne@68 75 .IP \(bu 3
jpayne@68 76 Для \fIфайла\fP встановлено setuid, setgid або «липкий» біт.
jpayne@68 77 .IP \(bu 3
jpayne@68 78 Режим дій встановлено у значення «стискання», і \fIфайл\fP вже має суфікс назви
jpayne@68 79 формату файла призначення (\fB.xz\fP або \fB.txz\fP при стисканні до формату
jpayne@68 80 \&\fB.xz\fP, і \fB.lzma\fP або \fB.tlz\fP при стисканні до формату \fB.lzma\fP).
jpayne@68 81 .IP \(bu 3
jpayne@68 82 Режим дій встановлено у значення «розпаковування», і \fIфайл\fP не має суфікса
jpayne@68 83 назви жодного з підтримуваних форматів (\fB.xz\fP, \fB.txz\fP, \fB.lzma\fP, \fB.tlz\fP
jpayne@68 84 або \fB.lz\fP).
jpayne@68 85 .PP
jpayne@68 86 Після успішного стискання або розпаковування \fIфайла\fP, \fBxz\fP копіює дані
jpayne@68 87 щодо власника, групи, прав доступу, часу доступу та моменту внесення змін з
jpayne@68 88 початкового \fIфайла\fP до файла призначення. Якщо копіювання даних щодо групи
jpayne@68 89 зазнає невдачі, права доступу буде змінено так, що файл призначення стане
jpayne@68 90 недоступним для користувачів, які не мають права доступу до початкового
jpayne@68 91 \fIфайла\fP. В \fBxz\fP ще не передбачено підтримки копіювання інших метаданих,
jpayne@68 92 зокрема списків керування доступом або розширених атрибутів.
jpayne@68 93 .PP
jpayne@68 94 Щойно файл призначення буде успішно закрито, початковий \fIфайл\fP буде
jpayne@68 95 вилучено, якщо не вказано параметра \fB\-\-keep\fP. Початковий \fIфайл\fP ніколи не
jpayne@68 96 буде вилучено, якщо виведені дані буде записано до стандартного виведення
jpayne@68 97 або якщо станеться помилка.
jpayne@68 98 .PP
jpayne@68 99 Надсилання \fBSIGINFO\fP або \fBSIGUSR1\fP до процесу \fBxz\fP призводить до
jpayne@68 100 виведення даних щодо поступу до стандартного виведення помилок. Це має лише
jpayne@68 101 обмежене використання, оскільки якщо стандартним виведенням помилок є
jpayne@68 102 термінал, використання \fB\-\-verbose\fP призведе до показу автоматично
jpayne@68 103 оновлюваного індикатора поступу.
jpayne@68 104 .
jpayne@68 105 .SS "Використання пам'яті"
jpayne@68 106 Використання \fBxz\fP пам'яті може бути різним: від декількох сотень кілобайтів
jpayne@68 107 до декількох гігабайтів, залежно від параметрів стискання. Параметри, які
jpayne@68 108 використано при стисканні файла, визначають вимоги до об'єму пам'яті при
jpayne@68 109 розпакуванні. Типово, засобу розпаковування потрібно від 5\ % до 20\ %
jpayne@68 110 об'єму пам'яті, якого засіб стискання потребує при створенні
jpayne@68 111 файла. Наприклад, розпаковування файла, який створено з використанням \fBxz \-9\fP, у поточній версії потребує 65\ МіБ пам'яті. Втім, можливе створення
jpayne@68 112 файлів \fB.xz\fP, які потребуватимуть для розпаковування декількох гігабайтів
jpayne@68 113 пам'яті.
jpayne@68 114 .PP
jpayne@68 115 Ймовірність високого рівня використання пам'яті може бути особливо
jpayne@68 116 дошкульною для користувачів застарілих комп'ютерів. Щоб запобігти прикрим
jpayne@68 117 несподіванкам, у \fBxz\fP передбачено вбудований обмежувач пам'яті, який типово
jpayne@68 118 вимкнено. Хоча у деяких операційних системах передбачено спосіб обмежити
jpayne@68 119 використання пам'яті процесами, сподівання на його ефективність не є аж
jpayne@68 120 надто гнучким (наприклад, використання \fBulimit\fP(1) для обмеження
jpayne@68 121 віртуальної пам'яті призводить до викривлення даних \fBmmap\fP(2)).
jpayne@68 122 .PP
jpayne@68 123 Обмежувач пам'яті можна увімкнути за допомогою параметра командного рядка
jpayne@68 124 \fB\-\-memlimit=\fP\fIобмеження\fP. Часто, зручніше увімкнути обмежувач на типовому
jpayne@68 125 рівні, встановивши значення для змінної середовища \fBXZ_DEFAULTS\fP,
jpayne@68 126 наприклад, \fBXZ_DEFAULTS=\-\-memlimit=150MiB\fP. Можна встановити обмеження
jpayne@68 127 окремо для стискання і розпакування за допомогою
jpayne@68 128 \fB\-\-memlimit\-compress=\fP\fIlimit\fP and
jpayne@68 129 \fB\-\-memlimit\-decompress=\fP\fIобмеження\fP. Використання цих двох параметрів поза
jpayne@68 130 \fBXZ_DEFAULTS\fP не таке вже і корисне, оскільки одноразовий запуск \fBxz\fP не
jpayne@68 131 може одночасно призводити до стискання та розпаковування, а набрати у
jpayne@68 132 командному рядку \fB\-\-memlimit=\fP\fIобмеження\fP (або \fB\-M\fP \fIобмеження\fP)
jpayne@68 133 набагато швидше.
jpayne@68 134 .PP
jpayne@68 135 Якщо під час розпаковування вказане обмеження буде перевищено, \fBxz\fP покаже
jpayne@68 136 повідомлення про помилку, а розпаковування файла зазнає невдачі. Якщо
jpayne@68 137 обмеження буде перевищено при стисканні, \fBxz\fP спробує масштабувати
jpayne@68 138 параметри так, щоб не перевищувати обмеження (окрім випадків використання
jpayne@68 139 \fB\-\-format=raw\fP або \fB\-\-no\-adjust\fP). Отже, дію буде виконано, якщо обмеження
jpayne@68 140 не є надто жорстким. Масштабування параметрів буде виконано кроками, які не
jpayne@68 141 збігаються із рівнями шаблонів стискання. Наприклад, якщо обмеження лише
jpayne@68 142 трохи не вкладається у об'єм потрібний для \fBxz \-9\fP, параметри буде змінено
jpayne@68 143 лише трохи, не до рівня \fBxz \-8\fP.
jpayne@68 144 .
jpayne@68 145 .SS "Поєднання і заповнення з файлами .xz"
jpayne@68 146 Можна поєднати файли \fB.xz\fP без додаткової обробки. \fBxz\fP розпакує такі
jpayne@68 147 файли так, наче вони є єдиним файлом \fB.xz\fP.
jpayne@68 148 .PP
jpayne@68 149 Можна додати доповнення між з'єднаними частинами або після останньої
jpayne@68 150 частини. Доповнення має складатися із нульових байтів і мати розмір, який є
jpayne@68 151 кратним до чотирьох байтів. Це може бути корисним, наприклад, якщо файл
jpayne@68 152 \&\fB.xz\fP зберігається на носії даних, де розміри файла вимірюються у
jpayne@68 153 512\-байтових блоках.
jpayne@68 154 .PP
jpayne@68 155 Поєднання та заповнення не можна використовувати для файлів \fB.lzma\fP або
jpayne@68 156 потоків необроблених даних.
jpayne@68 157 .
jpayne@68 158 .SH ПАРАМЕТРИ
jpayne@68 159 .
jpayne@68 160 .SS "Цілочисельні суфікси і спеціальні значення"
jpayne@68 161 У більшості місць, де потрібен цілочисельний аргумент, передбачено підтримку
jpayne@68 162 необов'язкового суфікса для простого визначення великих цілих чисел. Між
jpayne@68 163 цілим числом і суфіксом не повинно бути пробілів.
jpayne@68 164 .TP
jpayne@68 165 \fBKiB\fP
jpayne@68 166 Помножити ціле число на 1024 (2^10). Синонімами \fBKiB\fP є \fBKi\fP, \fBk\fP, \fBkB\fP,
jpayne@68 167 \fBK\fP та \fBKB\fP.
jpayne@68 168 .TP
jpayne@68 169 \fBMiB\fP
jpayne@68 170 Помножити ціле число на 1048576 (2^20). Синонімами \fBMiB\fP є B, \fBMi\fP, \fBm\fP,
jpayne@68 171 \fBM\fP та \fBMB\fP.
jpayne@68 172 .TP
jpayne@68 173 \fBGiB\fP
jpayne@68 174 Помножити ціле число на 1073741824 (2^30). Синонімами \fBGiB\fP є B, \fBGi\fP,
jpayne@68 175 \fBg\fP, \fBG\fP та \fBGB\fP.
jpayne@68 176 .PP
jpayne@68 177 Можна скористатися особливим значенням \fBmax\fP для позначення максимального
jpayne@68 178 цілого значення, підтримку якого передбачено для параметра.
jpayne@68 179 .
jpayne@68 180 .SS "Режим операції"
jpayne@68 181 Якщо вказано декілька параметрів режиму дій, буде використано лише останній
jpayne@68 182 з них.
jpayne@68 183 .TP
jpayne@68 184 \fB\-z\fP, \fB\-\-compress\fP
jpayne@68 185 Стиснути. Це типовий режим дій, якщо не вказано параметр режиму дій, а назва
jpayne@68 186 команди неявним чином не визначає іншого режиму дій (наприклад, \fBunxz\fP
jpayne@68 187 неявно визначає \fB\-\-decompress\fP).
jpayne@68 188 .IP ""
jpayne@68 189 .\" The DESCRIPTION section already says this but it's good to repeat it
jpayne@68 190 .\" here because the default behavior is a bit dangerous and new users
jpayne@68 191 .\" in a hurry may skip reading the DESCRIPTION section.
jpayne@68 192 After successful compression, the source file is removed unless writing to
jpayne@68 193 standard output or \fB\-\-keep\fP was specified.
jpayne@68 194 .TP
jpayne@68 195 \fB\-d\fP, \fB\-\-decompress\fP, \fB\-\-uncompress\fP
jpayne@68 196 .\" The DESCRIPTION section already says this but it's good to repeat it
jpayne@68 197 .\" here because the default behavior is a bit dangerous and new users
jpayne@68 198 .\" in a hurry may skip reading the DESCRIPTION section.
jpayne@68 199 Decompress. After successful decompression, the source file is removed
jpayne@68 200 unless writing to standard output or \fB\-\-keep\fP was specified.
jpayne@68 201 .TP
jpayne@68 202 \fB\-t\fP, \fB\-\-test\fP
jpayne@68 203 Перевірити цілісність стиснених файлів \fIфайли\fP. Цей параметр еквівалентний
jpayne@68 204 до \fB\-\-decompress \-\-stdout\fP, але розпаковані дані буде відкинуто, замість
jpayne@68 205 запису до стандартного виведення. Жодних файлів не буде створено або
jpayne@68 206 вилучено.
jpayne@68 207 .TP
jpayne@68 208 \fB\-l\fP, \fB\-\-list\fP
jpayne@68 209 Вивести відомості щодо стиснених файлів \fIфайли\fP. Розпакування даних не
jpayne@68 210 виконуватиметься, жодних файлів не буде створено або вилучено. У режимі
jpayne@68 211 списку програма не може читати дані зі стандартного введення або з інших
jpayne@68 212 джерел, де неможливе позиціювання.
jpayne@68 213 .IP ""
jpayne@68 214 У типовому списку буде показано базові відомості щодо файлів \fIфайли\fP, по
jpayne@68 215 одному файлу на рядок. Щоб отримати докладніші відомості, скористайтеся
jpayne@68 216 параметром \fB\-\-verbose\fP. Щоб розширити спектр відомостей, скористайтеся
jpayne@68 217 параметром \fB\-\-verbose\fP двічі, але зауважте, що це може призвести до
jpayne@68 218 значного уповільнення роботи, оскільки отримання додаткових відомостей
jpayne@68 219 потребує великої кількості позиціювань. Ширина області докладного виведення
jpayne@68 220 даних перевищує 80 символів, тому передавання конвеєром виведених даних,
jpayne@68 221 наприклад, до \fBless\ \-S\fP, може бути зручним способом перегляду даних, якщо
jpayne@68 222 термінал недостатньо широкий.
jpayne@68 223 .IP ""
jpayne@68 224 Виведені дані залежать від версії \fBxz\fP та використаної локалі. Для
jpayne@68 225 отримання даних, які будуть придатні до обробки комп'ютером, слід
jpayne@68 226 скористатися параметрами \fB\-\-robot \-\-list\fP.
jpayne@68 227 .
jpayne@68 228 .SS "Модифікатори режиму роботи"
jpayne@68 229 .TP
jpayne@68 230 \fB\-k\fP, \fB\-\-keep\fP
jpayne@68 231 Не вилучати вхідні файли.
jpayne@68 232 .IP ""
jpayne@68 233 Починаючи з версії \fBxz\fP 5.2.6, використання цього параметра також наказує
jpayne@68 234 \fBxz\fP виконувати стискання або розпаковування, навіть якщо вхідними даними є
jpayne@68 235 символічне посилання на звичайний файл, файл, який має декілька жорстких
jpayne@68 236 посилань, або файл, для якого встановлено setuid, setgid або липкий
jpayne@68 237 біт. setuid, setgid та липкий біт не буде скопійовано до файла\-результату. У
jpayne@68 238 попередніх версіях, ці дії виконувалися, лише якщо було використано параметр
jpayne@68 239 \fB\-\-force\fP.
jpayne@68 240 .TP
jpayne@68 241 \fB\-f\fP, \fB\-\-force\fP
jpayne@68 242 Результатів використання цього параметра буде декілька:
jpayne@68 243 .RS
jpayne@68 244 .IP \(bu 3
jpayne@68 245 Якщо файл\-результат вже існує, вилучити його до стискання або
jpayne@68 246 розпаковування.
jpayne@68 247 .IP \(bu 3
jpayne@68 248 Виконувати стискання або розпаковування, навіть якщо вхідними даними є
jpayne@68 249 символічне посилання на звичайний файл, файл, який має декілька жорстких
jpayne@68 250 посилань, або файл, для якого встановлено setuid, setgid або липкий біт
jpayne@68 251 setuid, setgid та липкий біт не буде скопійовано до файла\-результату.
jpayne@68 252 .IP \(bu 3
jpayne@68 253 Якщо використано разом із \fB\-\-decompress\fP, \fB\-\-stdout\fP, і \fBxz\fP не зможе
jpayne@68 254 розпізнати тип початкового файла, копіювати початковий файл без змін до
jpayne@68 255 стандартного виведення. Це надає змогу користуватися \fBxzcat\fP \fB\-\-force\fP
jpayne@68 256 подібно до \fBcat\fP(1) для файлів, які не було стиснено за допомогою
jpayne@68 257 \fBxz\fP. Зауважте, що у майбутньому у \fBxz\fP може бути реалізовано підтримку
jpayne@68 258 нових форматів стиснених файлів, замість копіювання їх без змін до
jpayne@68 259 стандартного виведення. Можна скористатися \fB\-\-format=\fP\fIформат\fP для
jpayne@68 260 обмеження стискання у \fBxz\fP єдиним форматом файлів.
jpayne@68 261 .RE
jpayne@68 262 .TP
jpayne@68 263 \fB\-c\fP, \fB\-\-stdout\fP, \fB\-\-to\-stdout\fP
jpayne@68 264 Записати стиснені або розпаковані дані до стандартного виведення, а не до
jpayne@68 265 файла. Неявним чином встановлює \fB\-\-keep\fP.
jpayne@68 266 .TP
jpayne@68 267 \fB\-\-single\-stream\fP
jpayne@68 268 Розпакувати лише перший потік даних \fB.xz\fP і без повідомлень проігнорувати
jpayne@68 269 решту вхідних даних, які слідують за цим потоком. Зазвичай, такі зайві дані
jpayne@68 270 наприкінці файла призводять до показу \fBxz\fP повідомлення про помилку.
jpayne@68 271 .IP ""
jpayne@68 272 \fBxz\fP ніколи не виконуватиме спроби видобути декілька потоків даних з файлів
jpayne@68 273 \&\fB.lzma\fP або необроблених потоків даних, але використання цього параметра
jpayne@68 274 все одно наказує \fBxz\fP ігнорувати можливі кінцеві дані після файла \fB.lzma\fP
jpayne@68 275 або необробленого потоку даних.
jpayne@68 276 .IP ""
jpayne@68 277 Цей параметр нічого не змінює, якщо режимом дій не є \fB\-\-decompress\fP або
jpayne@68 278 \fB\-\-test\fP.
jpayne@68 279 .TP
jpayne@68 280 \fB\-\-no\-sparse\fP
jpayne@68 281 Вимкнути створення розріджених файлів. Типово, якщо видобування виконується
jpayne@68 282 до звичайного файла, \fBxz\fP намагається створити розріджений файл, якщо
jpayne@68 283 розпаковані дані містять довгі послідовності двійкових нулів. Це також
jpayne@68 284 працює, коли виконується запис до стандартного виведення, доки стандартне
jpayne@68 285 виведення з'єднано зі звичайним файлом і виконуються певні додаткові умови,
jpayne@68 286 які убезпечують роботу. Створення розріджених файлів може заощадити місце на
jpayne@68 287 диску і пришвидшити розпаковування шляхом зменшення кількості дій введення
jpayne@68 288 та виведення даних на диску.
jpayne@68 289 .TP
jpayne@68 290 \fB\-S\fP \fI.suf\fP, \fB\-\-suffix=\fP\fI.suf\fP
jpayne@68 291 При стисканні використати суфікс \fI.suf\fP для файлів призначення, замість
jpayne@68 292 суфікса \fB.xz\fP або \fB.lzma\fP. Якщо записування виконується не до стандартного
jpayne@68 293 виведення і початковий файл вже має суфікс назви \fI.suf\fP, буде показано
jpayne@68 294 попередження, а файл буде пропущено під час обробки.
jpayne@68 295 .IP ""
jpayne@68 296 При розпаковуванні розпізнавати файли із суфіксом назви \fI.suf\fP, окрім
jpayne@68 297 файлів із суфіксами назв \fB.xz\fP, \fB.txz\fP, \fB.lzma\fP, \fB.tlz\fP або \fB.lz\fP. Якщо
jpayne@68 298 початковий файл мав суфікс назви \fI.suf\fP, для отримання назви файла
jpayne@68 299 призначення цей суфікс буде вилучено.
jpayne@68 300 .IP ""
jpayne@68 301 При стисканні або розпакуванні необроблених потоків даних (\fB\-\-format=raw\fP)
jpayne@68 302 суфікс слід вказувати завжди, якщо запис не виконується до стандартного
jpayne@68 303 виведення, оскільки типового суфікса назви для необроблених потоків даних не
jpayne@68 304 передбачено.
jpayne@68 305 .TP
jpayne@68 306 \fB\-\-files\fP[\fB=\fP\fIфайл\fP]
jpayne@68 307 Прочитати назви файлів для обробки з файла \fIфайл\fP; якщо \fIfile\fP не вказано,
jpayne@68 308 назви файлів буде прочитано зі стандартного потоку вхідних даних. Назви
jpayne@68 309 файлів має бути відокремлено символом нового рядка. Символ дефіса (\fB\-\fP)
jpayne@68 310 буде оброблено як звичайну назву файла; він не позначатиме стандартного
jpayne@68 311 джерела вхідних даних. Якщо також буде вказано назви файлів у аргументах
jpayne@68 312 рядка команди, файли з цими назвами буде оброблено до обробки файлів, назви
jpayne@68 313 яких було прочитано з файла \fIфайл\fP.
jpayne@68 314 .TP
jpayne@68 315 \fB\-\-files0\fP[\fB=\fP\fIфайл\fP]
jpayne@68 316 Те саме, що і \fB\-\-files\fP[\fB=\fP\fIфайл\fP], але файли у списку має бути
jpayne@68 317 відокремлено нульовим символом.
jpayne@68 318 .
jpayne@68 319 .SS "Параметри базового формату файлів та стискання"
jpayne@68 320 .TP
jpayne@68 321 \fB\-F\fP \fIformat\fP, \fB\-\-format=\fP\fIформат\fP
jpayne@68 322 Вказати файл \fIформат\fP для стискання або розпакування:
jpayne@68 323 .RS
jpayne@68 324 .TP
jpayne@68 325 \fBauto\fP
jpayne@68 326 Типовий варіант. При стисканні \fBauto\fP є еквівалентом \fBxz\fP. При
jpayne@68 327 розпакуванні формат файла вхідних даних буде виявлено автоматично. Зауважте,
jpayne@68 328 що автоматичне виявлення необроблених потоків даних (створених за допомогою
jpayne@68 329 \fB\-\-format=raw\fP) неможливе.
jpayne@68 330 .TP
jpayne@68 331 \fBxz\fP
jpayne@68 332 Стиснути до формату \fB.xz\fP або приймати лише файли \fB.xz\fP при
jpayne@68 333 розпаковуванні.
jpayne@68 334 .TP
jpayne@68 335 \fBlzma\fP, \fBalone\fP
jpayne@68 336 Стиснути дані до застарілого формату файлів \fB.lzma\fP або приймати лише файли
jpayne@68 337 \&\fB.lzma\fP при розпаковуванні. Альтернативну назву \fBalone\fP може бути
jpayne@68 338 використано для зворотної сумісності із LZMA Utils.
jpayne@68 339 .TP
jpayne@68 340 \fBlzip\fP
jpayne@68 341 Приймати лише файли \fB.lz\fP при розпакуванні. Підтримки стискання не
jpayne@68 342 передбачено.
jpayne@68 343 .IP ""
jpayne@68 344 Передбачено підтримку версії формату \fB.lz\fP 0 та нерозширеної версії
jpayne@68 345 1. Файли версії 0 було створено \fBlzip\fP 1.3 та старішими версіями. Такі
jpayne@68 346 файли не є поширеними, але їх можна знайти у файлових архівах, оскільки
jpayne@68 347 певну незначну кількість пакунків із початковим кодом було випущено у цьому
jpayne@68 348 форматі. Також можуть існувати особисті файли у цьому форматі. Підтримку
jpayne@68 349 розпаковування для формату версії 0 було вилучено у \fBlzip\fP 1.18.
jpayne@68 350 .IP ""
jpayne@68 351 \fBlzip\fP 1.4 і пізніші версії створюють файли у форматі версії 1. Розширення
jpayne@68 352 синхронізації позначки витирання до формату версії 1 було додано у \fBlzip\fP
jpayne@68 353 1.6. Це розширення використовують не часто, його підтримки у \fBxz\fP не
jpayne@68 354 передбачено (програма повідомлятиме про пошкоджені вхідні дані).
jpayne@68 355 .TP
jpayne@68 356 \fBraw\fP
jpayne@68 357 Стиснути або розпакувати потік необроблених даних (лез заголовків). Цей
jpayne@68 358 параметр призначено лише для досвідчених користувачів. Для розпаковування
jpayne@68 359 необроблених потоків даних слід користуватися параметром \fB\-\-format=raw\fP і
jpayne@68 360 явно вказати ланцюжок фільтрування, який за звичайних умов мало б бути
jpayne@68 361 збережено у заголовках контейнера.
jpayne@68 362 .RE
jpayne@68 363 .TP
jpayne@68 364 \fB\-C\fP \fIперевірка\fP, \fB\-\-check=\fP\fIперевірка\fP
jpayne@68 365 Вказати тип перевірки цілісності. Контрольну суму буде обчислено на основі
jpayne@68 366 нестиснених даних і збережено у файлі \fB.xz\fP. Цей параметр працюватиме, лише
jpayne@68 367 якщо дані стиснено до файла у форматі \fB.xz\fP; для формату файлів \fB.lzma\fP
jpayne@68 368 підтримки перевірки цілісності не передбачено. Перевірку контрольної суми
jpayne@68 369 (якщо така є) буде виконано під час розпаковування файла \fB.xz\fP.
jpayne@68 370 .IP ""
jpayne@68 371 Підтримувані типи \fIперевірок\fP:
jpayne@68 372 .RS
jpayne@68 373 .TP
jpayne@68 374 \fBnone\fP
jpayne@68 375 Не обчислювати контрольну суму взагалі. Зазвичай, не варто цього робити. Цим
jpayne@68 376 варіантом слід скористатися, якщо цілісність даних буде перевірено в інший
jpayne@68 377 спосіб.
jpayne@68 378 .TP
jpayne@68 379 \fBcrc32\fP
jpayne@68 380 Обчислити CRC32 за допомогою полінома з IEEE\-802.3 (Ethernet).
jpayne@68 381 .TP
jpayne@68 382 \fBcrc64\fP
jpayne@68 383 Обчислити CRC64 за допомогою полінома з ECMA\-182. Це типовий варіант,
jpayne@68 384 оскільки він дещо кращий за CRC32 при виявленні пошкоджених файлів, а
jpayne@68 385 різниця у швидкості є незрачною.
jpayne@68 386 .TP
jpayne@68 387 \fBsha256\fP
jpayne@68 388 Обчислити SHA\-256. Цей варіант дещо повільніший за CRC32 і CRC64.
jpayne@68 389 .RE
jpayne@68 390 .IP ""
jpayne@68 391 Цілісність заголовків \fB.xz\fP завжди перевіряють за допомогою CRC32. Таку
jpayne@68 392 перевірку не можна змінити або скасувати.
jpayne@68 393 .TP
jpayne@68 394 \fB\-\-ignore\-check\fP
jpayne@68 395 Не перевіряти цілісність стиснених даних при розпаковуванні. Значення CRC32
jpayne@68 396 у заголовках \fB.xz\fP буде у звичайний спосіб перевірено попри цей параметр.
jpayne@68 397 .IP ""
jpayne@68 398 \fBНе користуйтеся цим параметром, якщо ви не усвідомлюєте наслідків ваших дій.\fP Можливі причини скористатися цим параметром:
jpayne@68 399 .RS
jpayne@68 400 .IP \(bu 3
jpayne@68 401 Спроба отримання даних з пошкодженого файла .xz.
jpayne@68 402 .IP \(bu 3
jpayne@68 403 Пришвидшення розпакування. Це, здебільшого, стосується SHA\-256 або файлів із
jpayne@68 404 надзвичайно високим рівнем пакування. Не рекомендуємо користуватися цим
jpayne@68 405 параметром з цією метою, якщо цілісність файлів не буде перевірено у якийсь
jpayne@68 406 інший спосіб.
jpayne@68 407 .RE
jpayne@68 408 .TP
jpayne@68 409 \fB\-0\fP ... \fB\-9\fP
jpayne@68 410 Вибрати рівень стискання. Типовим є \fB\-6\fP. Якщо буде вказано декілька рівнів
jpayne@68 411 стискання, програма використає останній вказаний. Якщо вже було вказано
jpayne@68 412 нетиповий ланцюжок фільтрів, встановлення рівня стискання призведе до
jpayne@68 413 нехтування цим нетиповим ланцюжком фільтрів.
jpayne@68 414 .IP ""
jpayne@68 415 Різниця між рівнями є суттєвішою, ніж у \fBgzip\fP(1) і \fBbzip2\fP(1). Вибрані
jpayne@68 416 параметри стискання визначають вимоги до пам'яті під час розпаковування,
jpayne@68 417 отже використання надто високого рівня стискання може призвести до проблем
jpayne@68 418 під час розпаковування файла на застарілих комп'ютерах із невеликим обсягом
jpayne@68 419 оперативної пам'яті. Зокрема, \fBне варто використовувати \-9 для усього\fP, як
jpayne@68 420 це часто буває для \fBgzip\fP(1) і \fBbzip2\fP(1).
jpayne@68 421 .RS
jpayne@68 422 .TP
jpayne@68 423 \fB\-0\fP ... \fB\-3\fP
jpayne@68 424 Це дещо швидші набори налаштувань. \fB\-0\fP іноді є швидшим за \fBgzip \-9\fP,
jpayne@68 425 забезпечуючи набагато більший коефіцієнт стискання. Вищі рівні часто мають
jpayne@68 426 швидкість, яку можна порівняти з \fBbzip2\fP(1) із подібним або кращим
jpayne@68 427 коефіцієнтом стискання, хоча результати значно залежать від типу даних, які
jpayne@68 428 стискають.
jpayne@68 429 .TP
jpayne@68 430 \fB\-4\fP ... \fB\-6\fP
jpayne@68 431 Стискання від доброго до дуже доброго рівня із одночасним підтриманням
jpayne@68 432 помірного рівня споживання пам'яті засобом розпаковування, навіть для
jpayne@68 433 застарілих системи. Типовим є значення \fB\-6\fP, яке є добрим варіантом для
jpayne@68 434 поширення файлів, які мають бути придатними до розпаковування навіть у
jpayne@68 435 системах із лише 16\ МіБ оперативної пам'яті. (Також можна розглянути
jpayne@68 436 варіанти \fB\-5e\fP і \fB\-6e\fP. Див. \fB\-\-extreme\fP.)
jpayne@68 437 .TP
jpayne@68 438 \fB\-7 ... \-9\fP
jpayne@68 439 Ці варіанти подібні до \fB\-6\fP, але із вищими вимогами щодо пам'яті для
jpayne@68 440 стискання і розпаковування. Можуть бути корисними лише для стискання файлів
jpayne@68 441 з розміром, що перевищує 8\ МіБ, 16\ МіБ та 32\ МіБ, відповідно.
jpayne@68 442 .RE
jpayne@68 443 .IP ""
jpayne@68 444 На однаковому обладнанні швидкість розпакування є приблизно сталою кількістю
jpayne@68 445 байтів стиснених даних за секунду. Іншими словами, чим кращим є стискання,
jpayne@68 446 тим швидшим буде, зазвичай, розпаковування. Це також означає, що об'єм
jpayne@68 447 розпакованих виведених даних, які видає програма за секунду, може коливатися
jpayne@68 448 у широкому діапазоні.
jpayne@68 449 .IP ""
jpayne@68 450 У наведеній нижче таблиці підсумовано можливості шаблонів:
jpayne@68 451 .RS
jpayne@68 452 .RS
jpayne@68 453 .PP
jpayne@68 454 .TS
jpayne@68 455 tab(;);
jpayne@68 456 c c c c c
jpayne@68 457 n n n n n.
jpayne@68 458 Шаблон;DictSize;CompCPU;CompMem;DecMem
jpayne@68 459 \-0;256 КіБ;0;3 МіБ;1 МіБ
jpayne@68 460 \-1;1 МіБ;1;9 МіБ;2 МіБ
jpayne@68 461 \-2;2 МіБ;2;17 МіБ;3 МіБ
jpayne@68 462 \-3;4 МіБ;3;32 МіБ;5 МіБ
jpayne@68 463 \-4;4 МіБ;4;48 МіБ;5 МіБ
jpayne@68 464 \-5;8 МіБ;5;94 МіБ;9 МіБ
jpayne@68 465 \-6;8 МіБ;6;94 МіБ;9 МіБ
jpayne@68 466 \-7;16 МіБ;6;186 МіБ;17 МіБ
jpayne@68 467 \-8;32 МіБ;6;370 МіБ;33 МіБ
jpayne@68 468 \-9;64 МіБ;6;674 МіБ;65 МіБ
jpayne@68 469 .TE
jpayne@68 470 .RE
jpayne@68 471 .RE
jpayne@68 472 .IP ""
jpayne@68 473 Описи стовпчиків:
jpayne@68 474 .RS
jpayne@68 475 .IP \(bu 3
jpayne@68 476 DictSize є розміром словника LZMA2. Використання словника, розмір якого
jpayne@68 477 перевищує розмір нестисненого файла, — проста витрата пам'яті. Ось чому не
jpayne@68 478 варто використовувати шаблони \fB\-7\fP ... \fB\-9\fP, якщо у них немає реальної
jpayne@68 479 потреби. Для \fB\-6\fP та нижчих рівнів об'єм витраченої пам'яті, зазвичай,
jpayne@68 480 такий низький, що цей фактор ні на що не впливає.
jpayne@68 481 .IP \(bu 3
jpayne@68 482 CompCPU є спрощеним представленням параметрів LZMA2, які впливають на
jpayne@68 483 швидкість стискання. Розмір словника також впливає на швидкість, тому, хоча
jpayne@68 484 значення CompCPU є однаковим для рівнів \fB\-6\fP ... \fB\-9\fP, обробка на вищих
jpayne@68 485 рівнях все одно є трошки повільнішою. Що отримати повільніше і, ймовірно,
jpayne@68 486 краще стискання, див. \fB\-\-extreme\fP.
jpayne@68 487 .IP \(bu 3
jpayne@68 488 CompMem містить вимоги до пам'яті засобу стискання у однопотоковому
jpayne@68 489 режимі. Значення можуть бути дещо різними для різних версій \fBxz\fP.
jpayne@68 490 .IP \(bu 3
jpayne@68 491 У DecMem містяться вимоги до пам'яті при розпаковуванні. Тобто параметри
jpayne@68 492 засобу стискання визначають вимоги до пам'яті при розпаковуванні. Точний
jpayne@68 493 об'єм пам'яті, яка потрібна для розпаковування, дещо перевищує розмір
jpayne@68 494 словника LZMA2, але значення у таблиці було округлено до наступного цілого
jpayne@68 495 значення МіБ.
jpayne@68 496 .RE
jpayne@68 497 .IP ""
jpayne@68 498 Вимоги до пам'яті у багатопотоковому режимі є значно вищими, ніж у
jpayne@68 499 однопотоковому. З типовим значенням \fB\-\-block\-size\fP для кожного потоку треба
jpayne@68 500 3*3*DictSize плюс CompMem або DecMem. Наприклад, для чотирьох потоків з
jpayne@68 501 шаблоном \fB\-6\fP потрібно 660\(en670\ МіБ пам'яті.
jpayne@68 502 .TP
jpayne@68 503 \fB\-e\fP, \fB\-\-extreme\fP
jpayne@68 504 Використати повільніший варіант вибраного рівня стискання (\fB\-0\fP ... \fB\-9\fP)
jpayne@68 505 у сподіванні отримати трохи кращий коефіцієнт стискання, але, якщо не
jpayne@68 506 поталанить, можна його і погіршити. Не впливає на використання пам'яті при
jpayne@68 507 розпаковуванні, але використання пам'яті при стисканні дещо збільшиться на
jpayne@68 508 рівнях \fB\-0\fP ... \fB\-3\fP.
jpayne@68 509 .IP ""
jpayne@68 510 Оскільки існує два набори налаштувань із розмірами словників 4\ МіБ та 8\ МіБ, у наборах \fB\-3e\fP і \fB\-5e\fP використано трошки швидші параметри (нижче
jpayne@68 511 CompCPU), ніж у наборах \fB\-4e\fP і \fB\-6e\fP, відповідно. Тому двох однакових
jpayne@68 512 наборів у списку немає.
jpayne@68 513 .RS
jpayne@68 514 .RS
jpayne@68 515 .PP
jpayne@68 516 .TS
jpayne@68 517 tab(;);
jpayne@68 518 c c c c c
jpayne@68 519 n n n n n.
jpayne@68 520 Шаблон;DictSize;CompCPU;CompMem;DecMem
jpayne@68 521 \-0e;256 КіБ;8;4 МіБ;1 МіБ
jpayne@68 522 \-1e;1 МіБ;8;13 МіБ;2 МіБ
jpayne@68 523 \-2e;2 МіБ;8;25 МіБ;3 МіБ
jpayne@68 524 \-3e;4 МіБ;7;48 МіБ;5 МіБ
jpayne@68 525 \-4e;4 МіБ;8;48 МіБ;5 МіБ
jpayne@68 526 \-5e;8 МіБ;7;94 МіБ;9 МіБ
jpayne@68 527 \-6e;8 МіБ;8;94 МіБ;9 МіБ
jpayne@68 528 \-7e;16 МіБ;8;186 МіБ;17 МіБ
jpayne@68 529 \-8e;32 МіБ;8;370 МіБ;33 МіБ
jpayne@68 530 \-9e;64 МіБ;8;674 МіБ;65 МіБ
jpayne@68 531 .TE
jpayne@68 532 .RE
jpayne@68 533 .RE
jpayne@68 534 .IP ""
jpayne@68 535 Наприклад, передбачено загалом чотири набори налаштувань із використанням
jpayne@68 536 словника у 8\ МіБ, порядок яких від найшвидшого до найповільнішого є таким:
jpayne@68 537 \fB\-5\fP, \fB\-6\fP, \fB\-5e\fP і \fB\-6e\fP.
jpayne@68 538 .TP
jpayne@68 539 \fB\-\-fast\fP
jpayne@68 540 .PD 0
jpayne@68 541 .TP
jpayne@68 542 \fB\-\-best\fP
jpayne@68 543 .PD
jpayne@68 544 Це дещо оманливі альтернативні варіанти для \fB\-0\fP і \fB\-9\fP,
jpayne@68 545 відповідно. Реалізовано лише для забезпечення зворотної сумісності із LZMA
jpayne@68 546 Utils. Намагайтеся не користуватися цими варіантами параметрів.
jpayne@68 547 .TP
jpayne@68 548 \fB\-\-block\-size=\fP\fIрозмір\fP
jpayne@68 549 При стисканні до формату \fB.xz\fP поділити вхідні дані на блоки у \fIрозмір\fP
jpayne@68 550 байтів. Ці блоки буде стиснуто незалежно один від одного, що допоможе у
jpayne@68 551 багатопотоковій обробці і зробить можливим обмежене розпакування для доступу
jpayne@68 552 до будь\-яких даних. Цим параметром слід типово користуватися для
jpayne@68 553 перевизначення типового розміру блоку у багатопотоковому режимі обробки, але
jpayne@68 554 цим параметром можна також скористатися в однопотоковому режимі обробки.
jpayne@68 555 .IP ""
jpayne@68 556 У багатопотоковому режимі для кожного потоку буде отримано для буферів
jpayne@68 557 вхідних і вихідних даних майже утричі більше за \fIрозмір\fP байтів. Типовий
jpayne@68 558 \fIрозмір\fP утричі більший за розмір словника LZMA2 або дорівнює 1 МіБ, буде
jpayne@68 559 вибрано більше значення. Типовим добрим значенням буде значення, яке у
jpayne@68 560 2\(en4 рази перевищує розмір словника LZMA2 або дорівнює принаймні 1
jpayne@68 561 МіБ. Використання значення \fIрозмір\fP, яке є меншим за розмір словника LZMA2,
jpayne@68 562 має наслідком марну витрату оперативної пам'яті, оскільки його використання
jpayne@68 563 призводить до того, що буфер словника LZMA2 ніколи не буде використано
jpayne@68 564 повністю. У багатопотоковому режимі розміри блоків зберігатимуться у
jpayne@68 565 заголовках блоків. Ці дані потрібні для багатопотокового розпаковування.
jpayne@68 566 .IP ""
jpayne@68 567 У однопотоковому режимі поділ на блоки типово не
jpayne@68 568 виконуватиметься. Встановлення значення для цього параметра не впливатиме на
jpayne@68 569 використання пам'яті. У заголовках блоків не зберігатимуться дані щодо
jpayne@68 570 розміру, отже файли, які створено в однопотоковому режимі не будуть
jpayne@68 571 ідентичними до файлів, які створено у багатопотоковому режимі. Те, що у
jpayne@68 572 заголовках блоків не зберігатимуться дані щодо розміру також означає, що
jpayne@68 573 \fBxz\fP не зможе розпаковувати такі файли у багатопотоковому режимі.
jpayne@68 574 .TP
jpayne@68 575 \fB\-\-block\-list=\fP\fIзаписи\fP
jpayne@68 576 При стисканні у форматі \fB.xz\fP починати новий блок із необов'язковим
jpayne@68 577 ланцюжком фільтрів після вказаної кількості інтервалів нестиснених даних.
jpayne@68 578 .IP ""
jpayne@68 579 \fIзаписи\fP є списком відокремлених комами значень. Кожен запис складається з
jpayne@68 580 необов'язкового номера ланцюжка фільтрів від 0 до 9, після якого йде
jpayne@68 581 двокрапка (\fB:\fP) і необхідний розмір нестиснутих даних. Пропущення запису
jpayne@68 582 (дві або більше послідовних ком) є скороченим варіантом визначення
jpayne@68 583 використання розміру та фільтрів попереднього запису.
jpayne@68 584 .IP ""
jpayne@68 585 Якщо файл вхідних даних є більшим за розміром за суму розмірів \fIзаписів\fP,
jpayne@68 586 останнє значення у \fIрозмірах\fP буде повторено до кінця файла. Особливе
jpayne@68 587 значення \fB0\fP може бути використано як останній розмір, щоб позначити, що
jpayne@68 588 решту файла має бути закодовано як єдиний блок.
jpayne@68 589 .IP ""
jpayne@68 590 Альтернативний ланцюжок фільтрів для кожного блоку можна вказати в поєднанні
jpayne@68 591 з параметрами \fB\-\-filters1=\fP\fIфільтри\fP \&...\& \fB\-\-filters9=\fP\fIфільтри\fP. Ці
jpayne@68 592 параметри визначають ланцюжки фільтрів з ідентифікатором у діапазоні
jpayne@68 593 1\(en9. Ланцюжок фільтрів 0 можна використовувати для посилання на типовий
jpayne@68 594 ланцюжок фільтрів — це те саме, що не вказувати ланцюжок
jpayne@68 595 фільтрів. Ідентифікатор ланцюжка фільтрів можна використовувати перед
jpayne@68 596 нестисненим розміром, після якого йде двокрапка (\fB:\fP). Наприклад, якщо
jpayne@68 597 вказати \fB\-\-block\-list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB\fP, блоки будуть
jpayne@68 598 створені так:
jpayne@68 599 .RS
jpayne@68 600 .IP \(bu 3
jpayne@68 601 Ланцюжок фільтрів задано \fB\-\-filters1\fP із вхідними даними у 2 МіБ
jpayne@68 602 .IP \(bu 3
jpayne@68 603 Ланцюжок фільтрів задано \fB\-\-filters3\fP із вхідними даними у 2 МіБ
jpayne@68 604 .IP \(bu 3
jpayne@68 605 Ланцюжок фільтрів задано \fB\-\-filters2\fP із вхідними даними у 4 МіБ
jpayne@68 606 .IP \(bu 3
jpayne@68 607 Ланцюжок фільтрів задано \fB\-\-filters2\fP із вхідними даними у 4 МіБ
jpayne@68 608 .IP \(bu 3
jpayne@68 609 Типовий ланцюжок даних і вхідні дані у 2 МіБ
jpayne@68 610 .IP \(bu 3
jpayne@68 611 Типовий ланцюжок фільтрів та вхідні дані у 4 МіБ для кожного блоку до кінця
jpayne@68 612 вхідних даних.
jpayne@68 613 .RE
jpayne@68 614 .IP ""
jpayne@68 615 Якщо вказати розмір, який перевищує розмір блоку кодувальника (або типове
jpayne@68 616 значення у режимі із потоками обробки, або значення, яке встановлено за
jpayne@68 617 допомогою \fB\-\-block\-size=\fP\fIрозмір\fP), засіб кодування створить додаткові
jpayne@68 618 блоки, зберігаючи межі, які вказано у \fIзаписах\fP. Наприклад, якщо вказати
jpayne@68 619 \fB\-\-block\-size=10MiB\fP \fB\-\-block\-list=5MiB,10MiB,8MiB,12MiB,24MiB\fP, а файл
jpayne@68 620 вхідних даних має розмір 80 МіБ, буде отримано такі 11 блоків: 5, 10, 8, 10,
jpayne@68 621 2, 10, 10, 4, 10, 10 і 1 МіБ.
jpayne@68 622 .IP ""
jpayne@68 623 У багатопотоковому режимі розмір блоків буде збережено у заголовках
jpayne@68 624 блоків. Програма не зберігатиме ці дані у однопотоковому режимі, отже
jpayne@68 625 закодований результат не буде ідентичним до отриманого у багатопотоковому
jpayne@68 626 режимі.
jpayne@68 627 .TP
jpayne@68 628 \fB\-\-flush\-timeout=\fP\fIчас_очікування\fP
jpayne@68 629 При стискання, якщо з моменту попереднього витирання мине понад
jpayne@68 630 \fIчас_очікування\fP мілісекунд (додатне ціле значення) і читання додаткових
jpayne@68 631 даних буде заблоковано, усі вхідні дані у черзі обробки буде витерто з
jpayne@68 632 кодувальника і зроблено доступним у потоці вихідних даних. Це може бути
jpayne@68 633 корисним, якщо \fBxz\fP використовують для стискання даних, які передають
jpayne@68 634 потоком мережею. Невеликі значення аргументу \fIчас_очікування\fP зроблять дані
jpayne@68 635 доступними на боці отримання із малою затримкою, а великі значення аргумент
jpayne@68 636 \fIчас_очікування\fP уможливлять кращий коефіцієнт стискання.
jpayne@68 637 .IP ""
jpayne@68 638 Типово, цю можливість вимкнено. Якщо цей параметр вказано декілька разів,
jpayne@68 639 буде використано лише останнє вказане значення. Особливим значенням
jpayne@68 640 аргументу \fIчас_очікування\fP, рівним \fB0\fP, можна скористатися для вимикання
jpayne@68 641 цієї можливості явним чином.
jpayne@68 642 .IP ""
jpayne@68 643 Ця можливість недоступна у системах, які не є системами POSIX.
jpayne@68 644 .IP ""
jpayne@68 645 .\" FIXME
jpayne@68 646 \fBЦя можливість усе ще є експериментальною.\fP У поточній версії, \fBxz\fP не
jpayne@68 647 може розпаковувати потік даних у режимі реального часу через те, у який
jpayne@68 648 спосіб \fBxz\fP виконує буферизацію.
jpayne@68 649 .TP
jpayne@68 650 \fB\-\-memlimit\-compress=\fP\fIобмеження\fP
jpayne@68 651 Встановити обмеження на використання пам'яті при стисканні. Якщо цей
jpayne@68 652 параметр вказано декілька разів, враховано буде лише останнє вказане
jpayne@68 653 значення.
jpayne@68 654 .IP ""
jpayne@68 655 Якщо параметри стискання перевищують \fIобмеження\fP, \fBxz\fP спробує скоригувати
jpayne@68 656 параметри так, щоб обмеження не було перевищено, і покаже повідомлення про
jpayne@68 657 те, що було виконано автоматичне коригування. Коригування буде виконано у
jpayne@68 658 такому порядку: зменшення кількості потоків обробки, перемикання у
jpayne@68 659 однопотоковий режим, якщо хоч в одному потоці багатопотокового режиму буде
jpayne@68 660 перевищено \fIобмеження\fP, і нарешті, зменшення розміру словника LZMA2.
jpayne@68 661 .IP ""
jpayne@68 662 При стисканні з використанням \fB\-\-format=raw\fP, або якщо було вказано
jpayne@68 663 \fB\-\-no\-adjust\fP, може бути зменшена лише кількість потоків обробки, оскільки
jpayne@68 664 це може бути зроблено без впливу на стиснені виведені дані.
jpayne@68 665 .IP ""
jpayne@68 666 Якщо \fIобмеження\fP не може бути виконано за допомогою коригувань, які описано
jpayne@68 667 вище, буде показано повідомлення про помилку, а \fBxz\fP завершить роботу зі
jpayne@68 668 станом виходу 1.
jpayne@68 669 .IP ""
jpayne@68 670 Аргумент \fIобмеження\fP можна вказати у декілька способів:
jpayne@68 671 .RS
jpayne@68 672 .IP \(bu 3
jpayne@68 673 Значенням \fIобмеження\fP може бути додатне ціле значення у байтах. Можна
jpayne@68 674 скористатися цілочисельним суфіксом, подібним до \fBMiB\fP. Приклад:
jpayne@68 675 \fB\-\-memlimit\-compress=80MiB\fP
jpayne@68 676 .IP \(bu 3
jpayne@68 677 Аргумент \fIобмеження\fP може бути задано у відсотках від загальної фізичної
jpayne@68 678 пам'яті системи (RAM). Це може бути корисним особливо при встановленні
jpayne@68 679 змінної середовища \fBXZ_DEFAULTS\fP у скрипті ініціалізації системи, який є
jpayne@68 680 спільним для різних комп'ютерів. У такий спосіб можна вказати вищий рівень
jpayne@68 681 обмеження для систем із більшим об'ємом пам'яті. Приклад:
jpayne@68 682 \fB\-\-memlimit\-compress=70%\fP
jpayne@68 683 .IP \(bu 3
jpayne@68 684 Аргументу \fIобмеження\fP може бути повернуто типове значення встановленням
jpayne@68 685 значення \fB0\fP. У поточній версії це еквівалентно до встановлення значення
jpayne@68 686 аргументу \fIобмеження\fP \fBmax\fP (без обмеження на використання пам'яті).
jpayne@68 687 .RE
jpayne@68 688 .IP ""
jpayne@68 689 Для 32\-бітової версії \fBxz\fP передбачено особливий випадок: якщо \fIобмеження\fP
jpayne@68 690 перевищуватиме \fB4020\ МіБ\fP, для \fIобмеження\fP буде встановлено значення
jpayne@68 691 \fB4020\ MiB\fP. На MIPS32 замість цього буде використано \fB2000\ MiB\fP. (Це не
jpayne@68 692 стосується значень \fB0\fP і \fBmax\fP. Подібної можливості для розпаковування не
jpayne@68 693 існує.) Це може бути корисним, коли 32\-бітовий виконуваний файл має доступ
jpayne@68 694 до простору адрес у 4\ ГіБ (2 GiB на MIPS32), хоча, сподіваємося, не
jpayne@68 695 зашкодить і в інших випадках.
jpayne@68 696 .IP ""
jpayne@68 697 Див. також розділ \fBВикористання пам'яті\fP.
jpayne@68 698 .TP
jpayne@68 699 \fB\-\-memlimit\-decompress=\fP\fIобмеження\fP
jpayne@68 700 Встановити обмеження пам'яті на розпаковування. це також вплине на режим
jpayne@68 701 \fB\-\-list\fP. Якщо дія є неможливою без перевищення \fIобмеження\fP, \fBxz\fP покаже
jpayne@68 702 повідомлення про помилку і розпаковування файла не
jpayne@68 703 відбудеться. Див. \fB\-\-memlimit\-compress=\fP\fIобмеження\fP, щоб дізнатися більше
jpayne@68 704 про те, як можна задати \fIобмеження\fP.
jpayne@68 705 .TP
jpayne@68 706 \fB\-\-memlimit\-mt\-decompress=\fP\fIобмеження\fP
jpayne@68 707 Встановити обмеження використання пам'яті для багатопотокового
jpayne@68 708 розпаковування. Це може вплинути лише на кількість потоків обробки; це
jpayne@68 709 ніколи не призводитиме до відмови \fBxz\fP у розпаковуванні файла. Якщо
jpayne@68 710 \fIобмеження є надто низьким\fP, щоб уможливити будь\-яку багатопотокову
jpayne@68 711 обробку, \fIобмеження\fP буде проігноровано, і \fBxz\fP продовжить обробку в
jpayne@68 712 однопотоковому режимі. Зауважте, що якщо використано також
jpayne@68 713 \fB\-\-memlimit\-decompress\fP, цей параметр буде застосовано до обох режимів,
jpayne@68 714 однопотокового та багатопотокового, а отже, задіяне \fIобмеження\fP для
jpayne@68 715 багатопотокового режиму ніколи не перевищуватиме обмеження, яке встановлено
jpayne@68 716 за допомогою \fB\-\-memlimit\-decompress\fP.
jpayne@68 717 .IP ""
jpayne@68 718 На відміну від інших параметрів обмеження використання пам'яті,
jpayne@68 719 \fB\-\-memlimit\-mt\-decompress=\fP\fIобмеження\fP містить специфічне для системи
jpayne@68 720 типове значення \fIобмеження\fP. Можна скористатися \fBxz \-\-info\-memory\fP для
jpayne@68 721 перегляду поточного значення.
jpayne@68 722 .IP ""
jpayne@68 723 Цей параметр і його типове значення існують, оскільки без будь\-яких обмежень
jpayne@68 724 засіб розпакування зі підтримкою потокової обробки міг би намагатися
jpayne@68 725 отримати величезний об'єм пам'яті для деяких файлів вхідних даних. Якщо
jpayne@68 726 типове \fIобмеження\fP є надто низьким для вашої системи, не вагайтеся і
jpayne@68 727 збільшуйте \fIобмеження\fP, але ніколи не встановлюйте для нього значення, яке
jpayne@68 728 є більшим за придатний до користування об'єм оперативної пам'яті, оскільки
jpayne@68 729 за відповідних файлів вхідних даних \fBxz\fP спробує скористатися цим об'ємом
jpayne@68 730 пам'яті, навіть із низькою кількістю потоків обробки. Вичерпання об'єму
jpayne@68 731 оперативної пам'яті або використання резервної пам'яті на диску не покращить
jpayne@68 732 швидкодію системи під час розпаковування.
jpayne@68 733 .IP ""
jpayne@68 734 Див. \fB\-\-memlimit\-compress=\fP\fIобмеження\fP, щоб ознайомитися із можливими
jpayne@68 735 способами визначення \fIобмеження\fP. Встановлення для \fIобмеження\fP значення
jpayne@68 736 \fB0\fP відновлює типове специфічне для системи значення \fIобмеження\fP.
jpayne@68 737 .TP
jpayne@68 738 \fB\-M\fP \fIобмеження\fP, \fB\-\-memlimit=\fP\fIобмеження\fP, \fB\-\-memory=\fP\fIобмеження\fP
jpayne@68 739 Є еквівалентом визначення \fB\-\-memlimit\-compress=\fP\fIобмеження\fP
jpayne@68 740 \fB\-\-memlimit\-decompress=\fP\fIобмеження\fP
jpayne@68 741 \fB\-\-memlimit\-mt\-decompress=\fP\fIобмеження\fP.
jpayne@68 742 .TP
jpayne@68 743 \fB\-\-no\-adjust\fP
jpayne@68 744 Показати повідомлення про помилку і завершити роботу, якщо не вдасться
jpayne@68 745 виконати умови щодо обмеження використання пам'яті без коригування
jpayne@68 746 параметрів, які впливають на стиснених виведених даних. Тобто це забороняє
jpayne@68 747 \fBxz\fP перемикати кодувальник з багатопотокового режиму на однопотоковий
jpayne@68 748 режим і зменшувати розмір словника LZMA2. Навіть якщо використано цей
jpayne@68 749 параметр, кількість потоків може бути зменшено для виконання обмеження на
jpayne@68 750 використання пам'яті, оскільки це не вплине на результати стискання.
jpayne@68 751 .IP ""
jpayne@68 752 Автоматичне коригування завжди буде вимкнено при створенні потоків
jpayne@68 753 необроблених даних (\fB\-\-format=raw\fP).
jpayne@68 754 .TP
jpayne@68 755 \fB\-T\fP \fIпотоки\fP, \fB\-\-threads=\fP\fIпотоки\fP
jpayne@68 756 Вказати кількість потоків обробки, якими слід скористатися. Встановлення для
jpayne@68 757 аргументу \fIпотоки\fP особливого значення \fB0\fP наказує \fBxz\fP використати не
jpayne@68 758 більше потоків обробки, ніж передбачено підтримку у процесорах
jpayne@68 759 системи. Справжня кількість потоків може бути меншою за значення \fIпотоки\fP,
jpayne@68 760 якщо файл вхідних даних не є достатньо великим для поділу на потоки обробки
jpayne@68 761 при заданих параметрах або якщо використання додаткових потоків призведе до
jpayne@68 762 перевищення обмеження на використання пам'яті.
jpayne@68 763 .IP ""
jpayne@68 764 Засоби стискання в однопотоковому та багатопотоковому режимі дають різні
jpayne@68 765 результати. Однопотоковий засіб стискання дасть найменший розмір файла, але
jpayne@68 766 лише результати роботи багатопотокового засобу стискання може бути
jpayne@68 767 розпаковано з використанням декількох потоків. Встановлення для аргументу
jpayne@68 768 \fIпотоки\fP значення \fB1\fP призведе до використання однопотокового
jpayne@68 769 режиму. Встановлення для аргументу \fIпотоки\fP будь\-якого іншого значення,
jpayne@68 770 включно з \fB0\fP, призведе до використання багатопотокового засобу стискання,
jpayne@68 771 навіть якщо у системі передбачено підтримки лише одного апаратного потоку
jpayne@68 772 обробки даних. (Версія \fBxz\fP 5.2.x у цьому випадку використовувала
jpayne@68 773 однопотоковий режим.)
jpayne@68 774 .IP ""
jpayne@68 775 Щоб скористатися багатопотоковим режимом із лише одним потоком обробки,
jpayne@68 776 встановіть для аргументу \fIпотоки\fP значення \fB+1\fP. Префікс \fB+\fP не впливає
jpayne@68 777 на значення, окрім \fB1\fP. Обмеження на використання пам'яті можуть перемкнути
jpayne@68 778 \fBxz\fP в однопотоковий режим, якщо не використано параметр
jpayne@68 779 \fB\-\-no\-adjust\fP. Підтримку \fB+\fP prefix було додано у версії \fBxz\fP 5.4.0.
jpayne@68 780 .IP ""
jpayne@68 781 Якщо було вказано автоматичне визначення кількості потоків і не вказано
jpayne@68 782 обмеження на використання пам'яті, буде використано специфічне для системи
jpayne@68 783 типове м'яке обмеження для можливого обмеження кількості потоків обробки. Це
jpayne@68 784 обмеження є м'яким у сенсі того, що його буде проігноровано, якщо кількість
jpayne@68 785 потоків зрівняється з одиницею, а отже, м'яке обмеження ніколи не
jpayne@68 786 запобігатиму у \fBxz\fP стисканню або розпаковуванню. Це типове м'яке обмеження
jpayne@68 787 не перемкне \fBxz\fP з багатопотокового режиму на однопотоковий режим. Активні
jpayne@68 788 обмеження можна переглянути за допомогою команди \fBxz \-\-info\-memory\fP.
jpayne@68 789 .IP ""
jpayne@68 790 У поточній версії єдиним способом поділу на потоки обробки є поділ вхідних
jpayne@68 791 даних на блоки і стискання цих блоків незалежно один від одного. Типовий
jpayne@68 792 розмір блоку залежить від рівня стискання. Його може бути перевизначено за
jpayne@68 793 допомогою параметра \fB\-\-block\-size=\fP\fIрозмір\fP.
jpayne@68 794 .IP ""
jpayne@68 795 Розпакування з потоками обробки працює лише для файлів, які містять декілька
jpayne@68 796 блоків із даними щодо розміру у заголовках блоків. Цю умову задовольняють
jpayne@68 797 усі достатньо великі файли, які стиснено у багатопотоковому режимі, але не
jpayne@68 798 задовольняють будь\-які файли, які було стиснуто у однопотоковому режимі,
jpayne@68 799 навіть якщо було використано параметр \fB\-\-block\-size=\fP\fIрозмір\fP.
jpayne@68 800 .IP ""
jpayne@68 801 Типовим значенням для \fIпотоків\fP є \fB0\fP. У \fBxz\fP 5.4.x та старіших версіях
jpayne@68 802 типовим значенням є \fB1\fP.
jpayne@68 803 .
jpayne@68 804 .SS "Нетипові ланцюжки фільтрів засобу стискання"
jpayne@68 805 Нетиповий ланцюжок фільтрування уможливлює докладне визначення параметрів
jpayne@68 806 стискання замість використання параметрів, які пов'язано із наперед
jpayne@68 807 визначеними рівнями стискання. Якщо вказано нетиповий ланцюжок фільтрів,
jpayne@68 808 параметри рівнів стискання (\fB\-0\fP \&...\& \fB\-9\fP і \fB\-\-extreme\fP), які
jpayne@68 809 передують їм у рядку команди, буде знехтувано. Якщо параметр рівня стискання
jpayne@68 810 вказано після одного або декількох параметрів нетипового ланцюжка фільтрів,
jpayne@68 811 буде використано рівень стискання, а попередніми параметрами ланцюжка
jpayne@68 812 фільтрування буде знехтувано.
jpayne@68 813 .PP
jpayne@68 814 Ланцюжок фільтрів можна порівняти із конвеєром у командному рядку. При
jpayne@68 815 стисканні нестиснені вхідні дані потрапляють до першого фільтра, виведені
jpayne@68 816 ним дані йдуть до наступного фільтра (якщо такий є). Виведені останнім
jpayne@68 817 фільтром дані буде записано до стисненого файла. Максимальна кількість
jpayne@68 818 фільтрів у ланцюжку дорівнює чотирьом, але у типовому ланцюжку фільтрів
jpayne@68 819 використовують один або два фільтри.
jpayne@68 820 .PP
jpayne@68 821 У багатьох фільтрів є обмеження на місце перебування у ланцюжку фільтрів:
jpayne@68 822 деякі фільтри можуть працювати, лише якщо вони є останніми у ланцюжку,
jpayne@68 823 деякі, лише якщо не останніми, а деякі працюють у будь\-якій позиції
jpayne@68 824 ланцюжка. Залежно від фільтра, це обмеження є наслідком структури фільтра
jpayne@68 825 або існує для запобігання проблем із захистом.
jpayne@68 826 .PP
jpayne@68 827 Нетиповий ланцюжок фільтрів можна вказати двома різними способами. Параметри
jpayne@68 828 \fB\-\-filters=\fP\fIфільтри\fP і \fB\-\-filters1=\fP\fIфільтри\fP \&...\&
jpayne@68 829 \fB\-\-filters9=\fP\fIфільтри\fP надають змогу вказати цілий ланцюжок фільтрів в
jpayne@68 830 одному варіанті з використанням синтаксису рядків фільтрів liblzma. Крім
jpayne@68 831 того, ланцюжок фільтрів можна вказати за допомогою одного або кількох
jpayne@68 832 окремих параметрів фільтрування у тому порядку, в якому їх слід використати
jpayne@68 833 у ланцюжку фільтрів. Тобто порядок окремих параметрів фільтра є важливим!
jpayne@68 834 Під час декодування необроблених потоків (\fB\-\-format=raw\fP) ланцюжок фільтрів
jpayne@68 835 має бути вказано у тому ж порядку, що й під час стиснення. Будь\-який окремий
jpayne@68 836 фільтр або параметри попереднього налаштування, вказані перед параметром
jpayne@68 837 повного ланцюжка (\fB\-\-filters=\fP\fIфільтри\fP), буде відкинуто. Окремі фільтри,
jpayne@68 838 указані після параметра повного ланцюжка, відновлять типовий ланцюжок
jpayne@68 839 фільтрів.
jpayne@68 840 .PP
jpayne@68 841 І параметр повного і параметр окремого фільтра приймають специфічні для
jpayne@68 842 фільтрів \fIпараметри\fP у форматі списку значень, які відокремлено
jpayne@68 843 комами. Зайві коми у \fIпараметрах\fP буде проігноровано. У кожного параметра є
jpayne@68 844 типове значення, отже, вам слід вказати ті параметри, значення яких ви
jpayne@68 845 хочете змінити.
jpayne@68 846 .PP
jpayne@68 847 Щоб переглянути увесь ланцюжок фільтрів та \fIпараметри\fP, скористайтеся
jpayne@68 848 командою \fBxz \-vv\fP (тобто, скористайтеся \fB\-\-verbose\fP двічі). Це працює
jpayne@68 849 також для перегляду параметрів ланцюжка фільтрів, який використано у рівнях
jpayne@68 850 стискання.
jpayne@68 851 .TP
jpayne@68 852 \fB\-\-filters=\fP\fIфільтри\fP
jpayne@68 853 Визначає повний ланцюжок фільтрів або шаблон у форматі одного
jpayne@68 854 параметра. Кожен фільтр можна відокремити від інших пробілами або двома
jpayne@68 855 дефісами (\fB\-\-\fP). Можливо, \fIфільтри\fP доведеться взяти в лапки в командному
jpayne@68 856 рядку оболонки, щоб їх було оброблено як один параметр. Для позначення
jpayne@68 857 \fIпараметрів\fP скористайтеся \fB:\fP або \fB=\fP. До шаблона можна додати префікс
jpayne@68 858 \fB\-\fP і завершити без прапорців або декількома прапорцями. Єдиним
jpayne@68 859 підтримуваним прапорцем є \fBe\fP для застосування тих самих параметрів, що й
jpayne@68 860 \fB\-\-extreme\fP.
jpayne@68 861 .TP
jpayne@68 862 \fB\-\-filters1\fP=\fIфільтри\fP ... \fB\-\-filters9\fP=\fIфільтри\fP
jpayne@68 863 Вказати до дев'яти додаткових ланцюжків фільтрів, якими можна скористатися
jpayne@68 864 за допомогою \fB\-\-block\-list\fP.
jpayne@68 865 .IP ""
jpayne@68 866 Наприклад, якщо виконується стискання архіву із виконуваними файлами, за
jpayne@68 867 якими йдуть текстові файли, для виконуваної частини може бути використано
jpayne@68 868 ланцюжок фільтрів з фільтром BCJ, а для текстової частини — лише фільтр
jpayne@68 869 LZMA2.
jpayne@68 870 .TP
jpayne@68 871 \fB\-\-filters\-help\fP
jpayne@68 872 Вивести довідкове повідомлення з описом того, як вказати шаблони та нетипові
jpayne@68 873 ланцюжки фільтрів у параметри \fB\-\-filters\fP і \fB\-\-filters1=\fP\fIфільтри\fP
jpayne@68 874 \&...\& \fB\-\-filters9=\fP\fIфільтри\fP і завершити роботу із кодом успіху.
jpayne@68 875 .TP
jpayne@68 876 \fB\-\-lzma1\fP[\fB=\fP\fIпараметри\fP]
jpayne@68 877 .PD 0
jpayne@68 878 .TP
jpayne@68 879 \fB\-\-lzma2\fP[\fB=\fP\fIпараметри\fP]
jpayne@68 880 .PD
jpayne@68 881 Додати фільтр LZMA1 або LZMA2 до ланцюжка фільтрів. Ці фільтри може бути
jpayne@68 882 використано лише як останній фільтр у ланцюжку.
jpayne@68 883 .IP ""
jpayne@68 884 LZMA1 є застарілим фільтром, підтримку якого збережено майже лише через
jpayne@68 885 використання формату файлів \fB.lzma\fP, у яких передбачено підтримку лише
jpayne@68 886 LZMA1. LZMA2 є оновленою версією LZMA1, у якій виправлено деякі практичні
jpayne@68 887 вади LZMA1. У форматі \fB.xz\fP використано LZMA2 і взагалі не передбачено
jpayne@68 888 підтримки LZMA1. Швидкість стискання та коефіцієнт стискання для LZMA1 і
jpayne@68 889 LZMA2 є практично однаковими.
jpayne@68 890 .IP ""
jpayne@68 891 LZMA1 і LZMA2 спільно використовують той самий набір \fIпараметрів\fP:
jpayne@68 892 .RS
jpayne@68 893 .TP
jpayne@68 894 \fBpreset=\fP\fIшаблон\fP
jpayne@68 895 Скинути усі \fIпараметри\fP LZMA1 або LZMA2 до параметрів \fIшаблона\fP. Аргумент
jpayne@68 896 \fIшаблон\fP складається з цілого числа, після якого може бути однолітерний
jpayne@68 897 модифікатор шаблона. Ціле число може належати лише діапазону від \fB0\fP до
jpayne@68 898 \fB9\fP, що відповідає параметрам командного рядка \fB\-0\fP \&...\& \fB\-9\fP. Єдиним
jpayne@68 899 підтримуваним модифікатором у поточній версії є \fBe\fP, щоб відповідає
jpayne@68 900 параметру \fB\-\-extreme\fP. Якщо аргумент \fBшаблон\fP не вказано, типові значення
jpayne@68 901 \fIпараметрів\fP LZMA1 або LZMA2 буде взято із шаблона \fB6\fP.
jpayne@68 902 .TP
jpayne@68 903 \fBdict=\fP\fIрозмір\fP
jpayne@68 904 Параметр \fIрозміру\fP словника (буфера журналу) визначає, скільки байтів
jpayne@68 905 нещодавно оброблених нестиснених даних слід зберігати у пам'яті. Алгоритм
jpayne@68 906 намагається знайти повторювані послідовності байтів (відповідники) у
jpayne@68 907 нестиснених даних і замінити їх на посилання на дані зі словника. Чим
jpayne@68 908 більшим є словник, тим вищою є ймовірність відшукати відповідник. Отже,
jpayne@68 909 збільшення \fIрозміру\fP словника, зазвичай, покращує коефіцієнт стискання, але
jpayne@68 910 використання словника, розмір якого перевищу є розмір нестисненого файла є
jpayne@68 911 простоюю витратою пам'яті.
jpayne@68 912 .IP ""
jpayne@68 913 \fIРозмір\fP типового словника складає від 64\ КіБ до 64\ МіБ. Мінімальним є
jpayne@68 914 розмір 4\ КіБ. Максимальним розміром для стискання у поточній версії 1.5\ ГіБ (1536\ МіБ). У засобі розпаковування вже передбачено підтримку словників
jpayne@68 915 на один байт менших за 4\ ГіБ, що є максимальним значенням для форматів
jpayne@68 916 потоків даних LZMA1 і LZMA2.
jpayne@68 917 .IP ""
jpayne@68 918 Аргумент \fIрозміру\fP словника і засіб пошуку відповідників (\fImf\fP) разом
jpayne@68 919 визначають параметри використання пам'яті для кодувальника LZMA1 або
jpayne@68 920 LZMA2. Для розпаковування потрібен такий самий (або більший) \fIрозмір\fP
jpayne@68 921 словника, що і для стискання, отже, використання пам'яті для засобу
jpayne@68 922 розпаковування буде визначено за розміром словника, який було використано
jpayne@68 923 для стискання. У заголовках \fB.xz\fP зберігається \fIрозмір\fP словника або як
jpayne@68 924 2^\fIn\fP, або як 2^\fIn\fP + 2^(\fIn\fP\-1), отже, ці \fIрозміри\fP є дещо пріоритетними
jpayne@68 925 для стискання. Інші \fIрозміри\fP буде отримано округленням при зберіганні у
jpayne@68 926 заголовках \fB.xz\fP.
jpayne@68 927 .TP
jpayne@68 928 \fBlc=\fP\fIlc\fP
jpayne@68 929 Визначає кількість буквальних контекстних бітів. Мінімальною кількістю є 0,
jpayne@68 930 а максимальною — 4. Типовою кількістю є 3. Крім того, сума \fIlc\fP і \fIlp\fP має
jpayne@68 931 не перевищувати 4.
jpayne@68 932 .IP ""
jpayne@68 933 Усі байти, які не може бути закодовано як відповідності, буде закодовано як
jpayne@68 934 літерали. Тобто літерали є просто 8\-бітовими байтами, які буде закодовано по
jpayne@68 935 одному за раз.
jpayne@68 936 .IP ""
jpayne@68 937 При кодуванні літералів роблять припущення, що найвищі біти \fIlc\fP
jpayne@68 938 попереднього нестисненого байта корелюють із наступним байтом. Наприклад, у
jpayne@68 939 типовому тексті англійською за літерою у верхньому регістрі йде літера у
jpayne@68 940 нижньому регістрі, а за літерою у нижньому регістрі, зазвичай, йде інша
jpayne@68 941 літера у нижньому регістрі. У наборі символів US\-ASCII найвищими трьома
jpayne@68 942 бітами є 010 для літер верхнього регістру і 011 для літер нижнього
jpayne@68 943 регістру. Якщо \fIlc\fP дорівнює принаймні 3, при кодуванні літералів можна
jpayne@68 944 отримати перевагу встановлення цієї властивості для нестиснених даних.
jpayne@68 945 .IP ""
jpayne@68 946 Зазвичай, типового значення (3) достатньо. Якщо вам потрібне максимальне
jpayne@68 947 стискання, спробуйте \fBlc=4\fP. Іноді це трохи допомагає, а іноді, робить
jpayne@68 948 стискання гіршим. Якщо стискання стане гіршим, спробуйте також \fBlc=2\fP.
jpayne@68 949 .TP
jpayne@68 950 \fBlp=\fP\fIlp\fP
jpayne@68 951 Визначає кількість буквальних позиційних бітів. Мінімальною кількістю є 0, а
jpayne@68 952 максимальною — 4. Типовою кількістю є 0.
jpayne@68 953 .IP ""
jpayne@68 954 \fILp\fP впливає на те, яке вирівнювання у нестиснених даних слід припускати
jpayne@68 955 при кодуванні літералів. Див. \fIpb\fP нижче, щоб дізнатися більше про
jpayne@68 956 вирівнювання.
jpayne@68 957 .TP
jpayne@68 958 \fBpb=\fP\fIpb\fP
jpayne@68 959 Визначає кількість позиційних бітів. Мінімальною кількістю є 0, а
jpayne@68 960 максимальною — 4. Типовою кількістю є 2.
jpayne@68 961 .IP ""
jpayne@68 962 \fIPb\fP впливає на те, який тип вирівнювання загалом припускатиметься для
jpayne@68 963 нестиснених даних. Типовим є чотирибайтове вирівнювання (2^\fIpb\fP=2^2=4),
jpayne@68 964 яке, зазвичай, є добрим варіантом, якщо немає кращих припущень.
jpayne@68 965 .IP ""
jpayne@68 966 Якщо вирівнювання є відомим, встановлення відповідним чином \fIpb\fP може трохи
jpayne@68 967 зменшити розмір файла. Наприклад, у текстових файлах із однобайтовим
jpayne@68 968 вирівнюванням (US\-ASCII, ISO\-8859\-*, UTF\-8), встановлення значення \fBpb=0\fP
jpayne@68 969 може трохи поліпшити стискання. Для тексту UTF\-16 добрим варіантом є
jpayne@68 970 \fBpb=1\fP. Якщо вирівнювання є непарним числом, наприклад 3 байти, найкращим
jpayne@68 971 вибором, ймовірно, є \fBpb=0\fP.
jpayne@68 972 .IP ""
jpayne@68 973 Хоча прогнозоване вирівнювання можна скоригувати за допомогою \fIpb\fP і \fIlp\fP,
jpayne@68 974 у LZMA1 і LZMA2 дещо пріоритетним є 16\-байтове вирівнювання. Це, ймовірно,
jpayne@68 975 слід враховувати при компонуванні форматів файлів, які, ймовірно, часто
jpayne@68 976 будуть стискатися з використанням LZMA1 або LZMA2.
jpayne@68 977 .TP
jpayne@68 978 \fBmf=\fP\fImf\fP
jpayne@68 979 Засіб пошуку відповідників має значний вплив на швидкість, використання
jpayne@68 980 пам'яті та коефіцієнт стискання кодувальника. Зазвичай, засоби пошуку
jpayne@68 981 відповідників на основі ланцюжка хешів є швидшими за засоби пошуку
jpayne@68 982 відповідників на основі двійкового дерева. Типовий засіб залежить від
jpayne@68 983 \fIшаблона\fP: для 0 використовують \fBhc3\fP, для 1\(en3 — \fBhc4\fP, а для решти
jpayne@68 984 використовують \fBbt4\fP.
jpayne@68 985 .IP ""
jpayne@68 986 Передбачено підтримку вказаних нижче засобів пошуку відповідників. Наведені
jpayne@68 987 нижче формули обчислення використання пам'яті є грубими наближеннями, які є
jpayne@68 988 найближчими до реальних значень, якщо значенням \fIсловник\fP є степінь двійки.
jpayne@68 989 .RS
jpayne@68 990 .TP
jpayne@68 991 \fBhc3\fP
jpayne@68 992 Ланцюжок хешів із 2\- та 3\-байтовим хешуванням
jpayne@68 993 .br
jpayne@68 994 Мінімальне значення \fIпріоритетності\fP: 3
jpayne@68 995 .br
jpayne@68 996 Використання пам'яті:
jpayne@68 997 .br
jpayne@68 998 \fIdict\fP * 7.5 (якщо \fIdict\fP <= 16 МіБ);
jpayne@68 999 .br
jpayne@68 1000 \fIdict\fP * 5.5 + 64 МіБ (якщо \fIdict\fP > 16 МіБ)
jpayne@68 1001 .TP
jpayne@68 1002 \fBhc4\fP
jpayne@68 1003 Ланцюжок хешів із 2\-, 3\- та 4\-байтовим хешуванням
jpayne@68 1004 .br
jpayne@68 1005 Мінімальне значення \fIпріоритетності\fP: 4
jpayne@68 1006 .br
jpayne@68 1007 Використання пам'яті:
jpayne@68 1008 .br
jpayne@68 1009 \fIdict\fP * 7.5 (якщо \fIdict\fP <= 32 МіБ);
jpayne@68 1010 .br
jpayne@68 1011 \fIdict\fP * 6.5 (якщо \fIdict\fP > 32 МіБ)
jpayne@68 1012 .TP
jpayne@68 1013 \fBbt2\fP
jpayne@68 1014 Двійкове дерево із 2\-байтовим хешуванням
jpayne@68 1015 .br
jpayne@68 1016 Мінімальне значення \fIпріоритетності\fP: 2
jpayne@68 1017 .br
jpayne@68 1018 Використання пам'яті: \fIdict\fP * 9.5
jpayne@68 1019 .TP
jpayne@68 1020 \fBbt3\fP
jpayne@68 1021 Двійкове дерево із 2\- і 3\-байтовим хешуванням
jpayne@68 1022 .br
jpayne@68 1023 Мінімальне значення \fIпріоритетності\fP: 3
jpayne@68 1024 .br
jpayne@68 1025 Використання пам'яті:
jpayne@68 1026 .br
jpayne@68 1027 \fIdict\fP * 11.5 (якщо \fIdict\fP <= 16 МіБ);
jpayne@68 1028 .br
jpayne@68 1029 \fIdict\fP * 9.5 + 64 МіБ (якщо \fIdict\fP > 16 МіБ)
jpayne@68 1030 .TP
jpayne@68 1031 \fBbt4\fP
jpayne@68 1032 Двійкове дерево із 2\-, 3\- і 4\-байтовим хешуванням
jpayne@68 1033 .br
jpayne@68 1034 Мінімальне значення \fIпріоритетності\fP: 4
jpayne@68 1035 .br
jpayne@68 1036 Використання пам'яті:
jpayne@68 1037 .br
jpayne@68 1038 \fIdict\fP * 11.5 (якщо \fIdict\fP <= 32 МіБ);
jpayne@68 1039 .br
jpayne@68 1040 \fIdict\fP * 10.5 (якщо \fIdict\fP > 32 МіБ)
jpayne@68 1041 .RE
jpayne@68 1042 .TP
jpayne@68 1043 \fBmode=\fP\fIрежим\fP
jpayne@68 1044 Параметр \fIрежиму\fP стискання визначає спосіб, який буде використано для
jpayne@68 1045 аналізу даних, які створено засобом пошуку відповідників. Підтримуваними
jpayne@68 1046 \fIрежимами\fP є \fBfast\fP (швидкий) і \fBnormal\fP (нормальний). Типовим є режим
jpayne@68 1047 \fBfast\fP для \fIшаблонів\fP 0\(en3 і режим \fBnormal\fP для \fIшаблонів\fP 4\(en9.
jpayne@68 1048 .IP ""
jpayne@68 1049 Зазвичай, із засобом пошуку відповідників на основі ланцюжка хешів
jpayne@68 1050 використовують \fBfast\fP, а із засобом пошуку відповідників на основі
jpayne@68 1051 двійкового дерева використовують \fBnormal\fP. Так само налаштовано і
jpayne@68 1052 \fIшаблони\fP.
jpayne@68 1053 .TP
jpayne@68 1054 \fBnice=\fP\fIпріоритетність\fP
jpayne@68 1055 Вказати, яка довжина є пріоритетною для відповідності. Щойно буде виявлено
jpayne@68 1056 відповідність у принаймні \fIпріоритетність\fP байтів, алгоритм зупинятиме
jpayne@68 1057 пошук можливих кращих відповідників.
jpayne@68 1058 .IP ""
jpayne@68 1059 \fIПріоритетністю\fP може бути число до 2\(en273 байтів. Вищі значення дають
jpayne@68 1060 кращий коефіцієнт стискання за рахунок швидкості. Типове значення залежить
jpayne@68 1061 від \fIшаблона\fP.
jpayne@68 1062 .TP
jpayne@68 1063 \fBdepth=\fP\fIглибина\fP
jpayne@68 1064 Вказати максимальну глибину пошуку у засобі пошуку відповідності. Типовим є
jpayne@68 1065 особливе значення 0, яке наказує засобу стискання визначити прийнятну
jpayne@68 1066 \fIглибину\fP на основі \fImf\fP і \fIпріоритетності\fP.
jpayne@68 1067 .IP ""
jpayne@68 1068 Прийнятним значенням \fIглибини\fP для ланцюжків хешів є 4\(en100 і 16\(en1000
jpayne@68 1069 для двійкових дерев. Використання дуже високих значень для \fIглибини\fP може
jpayne@68 1070 зробити кодувальник дуже повільним для деяких файлів. Не встановлюйте
jpayne@68 1071 значення \fIглибини\fP, що перевищує 1000, якщо ви не готові перервати
jpayne@68 1072 стискання, якщо воно триватиме надто довго.
jpayne@68 1073 .RE
jpayne@68 1074 .IP ""
jpayne@68 1075 При декодуванні необроблених потоків даних (\fB\-\-format=raw\fP), LZMA2 потребує
jpayne@68 1076 лише \fIрозміру\fP словника. LZMA1 потребує також \fIlc\fP, \fIlp\fP і \fIpb\fP.
jpayne@68 1077 .TP
jpayne@68 1078 \fB\-\-x86\fP[\fB=\fP\fIпараметри\fP]
jpayne@68 1079 .PD 0
jpayne@68 1080 .TP
jpayne@68 1081 \fB\-\-arm\fP[\fB=\fP\fIпараметри\fP]
jpayne@68 1082 .TP
jpayne@68 1083 \fB\-\-armthumb\fP[\fB=\fP\fIпараметри\fP]
jpayne@68 1084 .TP
jpayne@68 1085 \fB\-\-arm64\fP[\fB=\fP\fIпараметри\fP]
jpayne@68 1086 .TP
jpayne@68 1087 \fB\-\-powerpc\fP[\fB=\fP\fIпараметри\fP]
jpayne@68 1088 .TP
jpayne@68 1089 \fB\-\-ia64\fP[\fB=\fP\fIпараметри\fP]
jpayne@68 1090 .TP
jpayne@68 1091 \fB\-\-sparc\fP[\fB=\fP\fIпараметри\fP]
jpayne@68 1092 .TP
jpayne@68 1093 \fB\-\-riscv\fP[\fB=\fP\fIпараметри\fP]
jpayne@68 1094 .PD
jpayne@68 1095 Додати фільтр гілок/викликів/переходів (branch/call/jump або BCJ) до
jpayne@68 1096 ланцюжка фільтрів. Цими фільтрами можна скористатися, лише якщо вони не є
jpayne@68 1097 останнім фільтром у ланцюжку фільтрів.
jpayne@68 1098 .IP ""
jpayne@68 1099 Фільтр BCJ перетворює відносні адреси у машинному коді на їхні абсолютні
jpayne@68 1100 відповідники. Це не змінює розміру даних, але підвищує резервування, що може
jpayne@68 1101 допомогти LZMA2 створити файл \fB.xz\fP на 0\(en15\ % менше. Фільтри BCJ завжди
jpayne@68 1102 є придатними до обернення, тому використання фільтра BCJ до помилкового типу
jpayne@68 1103 даних не спричинятиме втрати даних, хоча може дещо погіршити коефіцієнт
jpayne@68 1104 стискання. Фільтри BCJ є дуже швидкими і такими, що використовують незначний
jpayne@68 1105 об'єм пам'яті.
jpayne@68 1106 .IP ""
jpayne@68 1107 Ці фільтри BCJ мають відомі проблеми, які пов'язано із рівнем стискання:
jpayne@68 1108 .RS
jpayne@68 1109 .IP \(bu 3
jpayne@68 1110 У деяких типах файлів, де зберігається виконуваний код, (наприклад, в
jpayne@68 1111 об'єктних файлах, статичних бібліотеках та модулях ядра Linux) адреси в
jpayne@68 1112 інструкціях заповнено значеннями заповнювача. Ці фільтри BCJ виконуватимуть
jpayne@68 1113 перетворення адрес, яке зробить стискання для цих файлів гіршим.
jpayne@68 1114 .IP \(bu 3
jpayne@68 1115 Якщо фільтр BCJ застосовано до архіву, може так статися, що він погіршить
jpayne@68 1116 коефіцієнт стискання порівняно із варіантом без фільтра BCJ. Наприклад, якщо
jpayne@68 1117 є подібні або навіть однакові виконувані файли, фільтрування, ймовірно,
jpayne@68 1118 зробить ці файли менш подібними, а отже, зробить стискання гіршим. Вміст
jpayne@68 1119 файлів, які не є виконуваними, у тому самому архіві також може вплинути на
jpayne@68 1120 результат. На практиці, варто спробувати варіанти з фільтром BCJ і без
jpayne@68 1121 нього, щоб визначитися із тим, що буде кращим у кожній ситуації.
jpayne@68 1122 .RE
jpayne@68 1123 .IP ""
jpayne@68 1124 Різні набори інструкцій мають різне вирівнювання: виконуваний файл має бути
jpayne@68 1125 вирівняно на кратне до цього значення у вхідних даних, щоб фільтр спрацював.
jpayne@68 1126 .RS
jpayne@68 1127 .RS
jpayne@68 1128 .PP
jpayne@68 1129 .TS
jpayne@68 1130 tab(;);
jpayne@68 1131 l n l
jpayne@68 1132 l n l.
jpayne@68 1133 Фільтр;Вирівнювання;Нотатки
jpayne@68 1134 x86;1;32\-бітова або 64\-бітова x86
jpayne@68 1135 ARM;4;
jpayne@68 1136 ARM\-Thumb;2;
jpayne@68 1137 ARM64;4;Найкращим є вирівнювання за
jpayne@68 1138 ;;4096 байтами
jpayne@68 1139 PowerPC;4;Лише зворотний порядок байтів
jpayne@68 1140 IA\-64;16;Itanium
jpayne@68 1141 SPARC;4;
jpayne@68 1142 RISC\-V;2;
jpayne@68 1143 .TE
jpayne@68 1144 .RE
jpayne@68 1145 .RE
jpayne@68 1146 .IP ""
jpayne@68 1147 Оскільки фільтровані BCJ дані, зазвичай, стискають за допомогою LZMA2,
jpayne@68 1148 коефіцієнт стискання можна трохи поліпшити, якщо параметри LZMA2 буде
jpayne@68 1149 встановлено так, щоб вони відповідали вирівнюванню вибраного фільтра
jpayne@68 1150 BCJ. Приклади:
jpayne@68 1151 .RS
jpayne@68 1152 .IP \(bu 3
jpayne@68 1153 Фільтр IA\-64 має 16\-байтове вирівнювання, отже \fBpb=4,lp=4,lc=0\fP дасть добрі
jpayne@68 1154 результати у поєднанні із LZMA2 (2^4=16).
jpayne@68 1155 .IP \(bu 3
jpayne@68 1156 Код RISC\-V має 2\-байтове або 4\-байтове вирівнювання залежно від того, чи
jpayne@68 1157 містить файл 16\-бітові стислі інструкції (розширення C). Якщо використано
jpayne@68 1158 16\-бітові інструкції, добрі результати дасть \fBpb=2,lp=1,lc=3\fP або
jpayne@68 1159 \fBpb=1,lp=1,lc=3\fP. Якщо 16\-бітових інструкцій немає, найкращим варіантом є
jpayne@68 1160 \fBpb=2,lp=2,lc=2\fP. Можна скористатися \fBreadelf \-h\fP, щоб перевірити, чи є
jpayne@68 1161 "RVC" у рядку "Flags".
jpayne@68 1162 .IP \(bu 3
jpayne@68 1163 ARM64 завжди вирівняно на 4 байти, тому найкращим варіантом буде
jpayne@68 1164 \fBpb=2,lp=2,lc=2\fP.
jpayne@68 1165 .IP \(bu 3
jpayne@68 1166 Фільтр x86 є виключенням. Зазвичай, добрі результати дають типові для LZMA2
jpayne@68 1167 значення (\fBpb=2,lp=0,lc=3\fP), якщо стискають виконувані файли x86.
jpayne@68 1168 .RE
jpayne@68 1169 .IP ""
jpayne@68 1170 У всіх фільтрах BCJ передбачено підтримку тих самих \fIпараметрів\fP:
jpayne@68 1171 .RS
jpayne@68 1172 .TP
jpayne@68 1173 \fBstart=\fP\fIзсув\fP
jpayne@68 1174 Встановити початковий \fIзсув\fP, який буде використано при перетворенні між
jpayne@68 1175 відносною та абсолютною адресами. Значення \fIзсув\fP має бути кратним до
jpayne@68 1176 вирівнювання фільтра (див. таблицю вище). Типовим зсувом є нульовий. На
jpayne@68 1177 практиці, типове значення є прийнятним; визначення нетипового значення
jpayne@68 1178 \fIзсув\fP майже завжди нічого корисного не дає.
jpayne@68 1179 .RE
jpayne@68 1180 .TP
jpayne@68 1181 \fB\-\-delta\fP[\fB=\fP\fIпараметри\fP]
jpayne@68 1182 Додати дельта\-фільтр до ланцюжка фільтрів. Дельта\-фільтр може бути
jpayne@68 1183 використано, лише якщо він не є останнім у ланцюжку фільтрів.
jpayne@68 1184 .IP ""
jpayne@68 1185 У поточній версії передбачено підтримку обчислення лише простої побітової
jpayne@68 1186 дельти. Це може бути корисним при стисканні, наприклад, нестиснутих
jpayne@68 1187 растрових зображень або нестиснутих звукових даних PCM. Втім, спеціалізовані
jpayne@68 1188 алгоритми можуть давати значно кращі результати за дельту + LZMA2. Це
jpayne@68 1189 правило особливо стосується звукових даних, які стискає швидше і краще,
jpayne@68 1190 наприклад, \fBflac\fP(1).
jpayne@68 1191 .IP ""
jpayne@68 1192 Підтримувані \fIпараметри\fP:
jpayne@68 1193 .RS
jpayne@68 1194 .TP
jpayne@68 1195 \fBdist=\fP\fIвідстань\fP
jpayne@68 1196 Вказати \fIвідстань\fP обчислень різниці у байтах. Значення \fIвідстань\fP має
jpayne@68 1197 потрапляти у діапазон 1\(en256. Типовим значенням є 1.
jpayne@68 1198 .IP ""
jpayne@68 1199 Наприклад, з \fBdist=2\fP та восьмибайтовими вхідними даними A1 B1 A2 B3 A3 B5
jpayne@68 1200 A4 B7, результатом буде A1 B1 01 02 01 02 01 02.
jpayne@68 1201 .RE
jpayne@68 1202 .
jpayne@68 1203 .SS "Інші параметри"
jpayne@68 1204 .TP
jpayne@68 1205 \fB\-q\fP, \fB\-\-quiet\fP
jpayne@68 1206 Придушити попередження та сповіщення. Вкажіть цей параметр двічі, щоб
jpayne@68 1207 придушити також повідомлення про помилки. Цей параметр не впливає на стан
jpayne@68 1208 виходу з програми. Тобто, навіть якщо було придушено попередження, стан
jpayne@68 1209 виходу вказуватиме на те, що попередження були.
jpayne@68 1210 .TP
jpayne@68 1211 \fB\-v\fP, \fB\-\-verbose\fP
jpayne@68 1212 Докладний режим повідомлень. Якщо стандартне виведення помилок з'єднано із
jpayne@68 1213 терміналом, \fBxz\fP показуватиме індикатор поступу. Використання \fB\-\-verbose\fP
jpayne@68 1214 двічі призведе до ще докладнішого виведення.
jpayne@68 1215 .IP ""
jpayne@68 1216 Індикатор поступу показує такі дані:
jpayne@68 1217 .RS
jpayne@68 1218 .IP \(bu 3
jpayne@68 1219 Частку завершеності буде показано, якщо відомий розмір файла вхідних
jpayne@68 1220 даних. Тобто, для каналів даних частку не може бути показано.
jpayne@68 1221 .IP \(bu 3
jpayne@68 1222 Об'єм стиснених виведених даних (стискання) або оброблених (розпаковування).
jpayne@68 1223 .IP \(bu 3
jpayne@68 1224 Об'єм незапакованих даних (стискання) або виведених даних (розпаковування).
jpayne@68 1225 .IP \(bu 3
jpayne@68 1226 Коефіцієнт стискання, який обчислено діленням об'єму оброблених стиснутих
jpayne@68 1227 даних на об'єм оброблених нестиснутих даних.
jpayne@68 1228 .IP \(bu 3
jpayne@68 1229 Швидкість стискання або розпаковування. Обчислюється як об'єм нестиснутих
jpayne@68 1230 даних (стискання) або виведених даних (розпаковування) за секунду. Його буде
jpayne@68 1231 показано за декілька секунд з моменту, коли \fBxz\fP почала обробляти файл.
jpayne@68 1232 .IP \(bu 3
jpayne@68 1233 Витрачений час у форматі Х:СС або Г:ХХ:СС.
jpayne@68 1234 .IP \(bu 3
jpayne@68 1235 Оцінку часу, що лишився, буде показано, лише якщо розмір файла вхідних даних
jpayne@68 1236 є відомим, і минуло принаймні декілька секунд з моменту, коли \fBxz\fP почала
jpayne@68 1237 обробляти файл. Час буде показано у менш точному форматі, без двокрапок,
jpayne@68 1238 наприклад, 2 хв. 30 с.
jpayne@68 1239 .RE
jpayne@68 1240 .IP ""
jpayne@68 1241 Якщо стандартним виведенням помилок не є термінал, \fB\-\-verbose\fP призведе до
jpayne@68 1242 того, що \fBxz\fP виведе назву файла, стиснений розмір, нестиснений розмір,
jpayne@68 1243 коефіцієнт стискання та, можливо, також швидкість та витрачений час у одному
jpayne@68 1244 рядку до стандартного виведення помилок після стискання або розпаковування
jpayne@68 1245 файла. Швидкість та витрачений час буде включено, лише якщо дія триває
jpayne@68 1246 принаймні декілька секунд. Якщо дію не буде завершено, наприклад, через
jpayne@68 1247 втручання користувача, буде також виведено частку виконання, якщо відомий
jpayne@68 1248 розмір файла вхідних даних.
jpayne@68 1249 .TP
jpayne@68 1250 \fB\-Q\fP, \fB\-\-no\-warn\fP
jpayne@68 1251 Не встановлювати стан виходу 2, навіть якщо було виявлено відповідність
jpayne@68 1252 умові, яка варта попередження. Цей параметр не впливає на рівень докладності
jpayne@68 1253 повідомлень, отже, слід використати \fB\-\-quiet\fP і \fB\-\-no\-warn\fP, щоб програма
jpayne@68 1254 не показувала попереджень і не змінювала стан виходу.
jpayne@68 1255 .TP
jpayne@68 1256 \fB\-\-robot\fP
jpayne@68 1257 Виводити повідомлення у придатному для обробки комп'ютером форматі. Цей
jpayne@68 1258 формат призначено для полегшення написання оболонок, які використовуватимуть
jpayne@68 1259 \fBxz\fP замість liblzma, що може бути зручним для різноманітних
jpayne@68 1260 скриптів. Виведені дані з цим параметром має бути стабільним для усіх
jpayne@68 1261 випусків \fBxz\fP. Докладніший опис можна знайти у розділі \fBРЕЖИМ РОБОТА\fP.
jpayne@68 1262 .TP
jpayne@68 1263 \fB\-\-info\-memory\fP
jpayne@68 1264 Вивести у придатному для читання людиною форматі, скільки фізичної пам'яті
jpayne@68 1265 (RAM) та скільки потоків процесора є за даними \fBxz\fP у системі, обмеження
jpayne@68 1266 для стискання та розпаковування, а потім успішно завершити роботу.
jpayne@68 1267 .TP
jpayne@68 1268 \fB\-h\fP, \fB\-\-help\fP
jpayne@68 1269 Вивести повідомлення про помилку з описом найбільш типових використаних
jpayne@68 1270 параметрів і успішно завершити роботу.
jpayne@68 1271 .TP
jpayne@68 1272 \fB\-H\fP, \fB\-\-long\-help\fP
jpayne@68 1273 Вивести довідкове повідомлення з описом усіх можливостей \fBxz\fP і успішно
jpayne@68 1274 завершити роботу
jpayne@68 1275 .TP
jpayne@68 1276 \fB\-V\fP, \fB\-\-version\fP
jpayne@68 1277 Вивести номер версії \fBxz\fP та liblzma у зручному для читання форматі. Щоб
jpayne@68 1278 отримати дані, зручні для обробки на комп'ютері, вкажіть \fB\-\-robot\fP до
jpayne@68 1279 \fB\-\-version\fP.
jpayne@68 1280 .
jpayne@68 1281 .SH "РЕЖИМ РОБОТА"
jpayne@68 1282 Режим робота активують за допомогою параметра \fB\-\-robot\fP. Він спрощує
jpayne@68 1283 обробку виведених \fBxz\fP даних іншими програмами. У поточній версії підтримку
jpayne@68 1284 \fB\-\-robot\fP передбачено лише разом із \fB\-\-list\fP, \fB\-\-filters\-help\fP,
jpayne@68 1285 \fB\-\-info\-memory\fP і \fB\-\-version\fP. У майбутньому підтримку параметра буде
jpayne@68 1286 передбачено для стискання та розпаковування.
jpayne@68 1287 .
jpayne@68 1288 .SS "Режим списку"
jpayne@68 1289 У \fBxz \-\-robot \-\-list\fP використано табуляції для поділу виведених
jpayne@68 1290 даних. Першим стовпчиком у кожному рядку є рядок, що вказує на тип
jpayne@68 1291 відомостей, які можна знайти у цьому рядку:
jpayne@68 1292 .TP
jpayne@68 1293 \fBназва\fP
jpayne@68 1294 Це завжди перший рядок на початку списку файла. Другим стовпчиком у рядку є
jpayne@68 1295 назва файла.
jpayne@68 1296 .TP
jpayne@68 1297 \fBфайл\fP
jpayne@68 1298 У цьому рядку містяться загальні відомості щодо файла \fB.xz\fP. Цей рядок
jpayne@68 1299 завжди виводять після рядка \fBname\fP.
jpayne@68 1300 .TP
jpayne@68 1301 \fBstream\fP
jpayne@68 1302 Цей тип рядка використовують, лише якщо було вказано \fB\-\-verbose\fP. Буде
jpayne@68 1303 стільки рядків \fBstream\fP, скільки потоків у файлі \fB.xz\fP.
jpayne@68 1304 .TP
jpayne@68 1305 \fBblock\fP
jpayne@68 1306 Цей тип рядка використовують, лише якщо було вказано \fB\-\-verbose\fP. Буде
jpayne@68 1307 стільки рядків \fBblock\fP, скільки блоків у файлі \fB.xz\fP. Рядки \fBblock\fP буде
jpayne@68 1308 показано після усіх рядків \fBstream\fP; різні типи рядків не перемежовуються.
jpayne@68 1309 .TP
jpayne@68 1310 \fBsummary\fP
jpayne@68 1311 Цей тип рядків використовують, лише якщо \fB\-\-verbose\fP було вказано
jpayne@68 1312 двічі. Цей рядок буде виведено після усіх рядків \fBblock\fP. Подібно до рядка
jpayne@68 1313 \fBfile\fP, рядок \fBsummary\fP містить загальні відомості щодо файла \fB.xz\fP.
jpayne@68 1314 .TP
jpayne@68 1315 \fBtotals\fP
jpayne@68 1316 Цей рядок завжди є найостаннішим рядком у виведеному списку. У ньому буде
jpayne@68 1317 показано загальні кількості та розміри.
jpayne@68 1318 .PP
jpayne@68 1319 Стовпчики у рядках \fBфайла\fP:
jpayne@68 1320 .PD 0
jpayne@68 1321 .RS
jpayne@68 1322 .IP 2. 4
jpayne@68 1323 Кількість потоків у файлі
jpayne@68 1324 .IP 3. 4
jpayne@68 1325 Загальна кількість блоків у потоках
jpayne@68 1326 .IP 4. 4
jpayne@68 1327 Розмір стисненого файла
jpayne@68 1328 .IP 5. 4
jpayne@68 1329 Розмір нестисненого файла
jpayne@68 1330 .IP 6. 4
jpayne@68 1331 Коефіцієнт стискання, наприклад, \fB0.123\fP. Якщо коефіцієнт перевищує 9.999,
jpayne@68 1332 замість коефіцієнта буде показано дефіси (\fB\-\-\-\fP).
jpayne@68 1333 .IP 7. 4
jpayne@68 1334 Список відокремлених комами назв перевірок цілісності. Наведені нижче рядки
jpayne@68 1335 використовують для відомих типів перевірок: \fBNone\fP, \fBCRC32\fP, \fBCRC64\fP і
jpayne@68 1336 \fBSHA\-256\fP. Для невідомих типів перевірок буде використано \fBUnknown\-\fP\fIN\fP,
jpayne@68 1337 де \fIN\fP є ідентифікатором перевірки у форматі десяткового числа (одна або
jpayne@68 1338 дві цифри).
jpayne@68 1339 .IP 8. 4
jpayne@68 1340 Загальний розмір доповнення потоку у файлі
jpayne@68 1341 .RE
jpayne@68 1342 .PD
jpayne@68 1343 .PP
jpayne@68 1344 Стовпчики у рядках \fBstream\fP:
jpayne@68 1345 .PD 0
jpayne@68 1346 .RS
jpayne@68 1347 .IP 2. 4
jpayne@68 1348 Номер потоку (перший потік має номер 1)
jpayne@68 1349 .IP 3. 4
jpayne@68 1350 Кількість блоків у потоці
jpayne@68 1351 .IP 4. 4
jpayne@68 1352 Зсув початку стисненого
jpayne@68 1353 .IP 5. 4
jpayne@68 1354 Зсув початку нестисненого
jpayne@68 1355 .IP 6. 4
jpayne@68 1356 Стиснений розмір (не включає доповнення потоку)
jpayne@68 1357 .IP 7. 4
jpayne@68 1358 Нестиснутий розмір
jpayne@68 1359 .IP 8. 4
jpayne@68 1360 Рівень стискання
jpayne@68 1361 .IP 9. 4
jpayne@68 1362 Назва перевірки цілісності
jpayne@68 1363 .IP 10. 4
jpayne@68 1364 Розмір доповнення потоку
jpayne@68 1365 .RE
jpayne@68 1366 .PD
jpayne@68 1367 .PP
jpayne@68 1368 Стовпчики у рядках \fBblock\fP:
jpayne@68 1369 .PD 0
jpayne@68 1370 .RS
jpayne@68 1371 .IP 2. 4
jpayne@68 1372 Номер потоку, що містить цей блок
jpayne@68 1373 .IP 3. 4
jpayne@68 1374 Номер блоку відносно початку потоку (перший блок має номер 1)
jpayne@68 1375 .IP 4. 4
jpayne@68 1376 Номер блоку відносно початку файла
jpayne@68 1377 .IP 5. 4
jpayne@68 1378 Зсув початку стисненого відносно початку файла
jpayne@68 1379 .IP 6. 4
jpayne@68 1380 Зсув початку нестисненого відносно початку файла
jpayne@68 1381 .IP 7. 4
jpayne@68 1382 Загальний стиснений розмір блоку (включено з заголовками)
jpayne@68 1383 .IP 8. 4
jpayne@68 1384 Нестиснутий розмір
jpayne@68 1385 .IP 9. 4
jpayne@68 1386 Рівень стискання
jpayne@68 1387 .IP 10. 4
jpayne@68 1388 Назва перевірки цілісності
jpayne@68 1389 .RE
jpayne@68 1390 .PD
jpayne@68 1391 .PP
jpayne@68 1392 Якщо \fB\-\-verbose\fP було вказано двічі, до рядків \fBblock\fP буде включено
jpayne@68 1393 додаткові стовпчики. Ці стовпчики не буде показано, якщо вказано одинарний
jpayne@68 1394 параметр \fB\-\-verbose\fP, оскільки отримання цих відомостей потребує багатьох
jpayne@68 1395 позиціювань, а ця процедура може бути повільною:
jpayne@68 1396 .PD 0
jpayne@68 1397 .RS
jpayne@68 1398 .IP 11. 4
jpayne@68 1399 Значення перевірки цілісності у шістнадцятковій формі
jpayne@68 1400 .IP 12. 4
jpayne@68 1401 Розмір заголовка блоку
jpayne@68 1402 .IP 13. 4
jpayne@68 1403 Прапорці блоку: \fBc\fP вказує, що наявний стиснений розмір, а \fBu\fP вказує, що
jpayne@68 1404 наявний нестиснений розмір. Якщо прапорець не встановлено, буде показано
jpayne@68 1405 (\fB\-\fP) замість підтримання фіксованого розміру рядка. У майбутньому
jpayne@68 1406 наприкінці рядка може бути додано нові прапорці.
jpayne@68 1407 .IP 14. 4
jpayne@68 1408 Розмір справжніх стиснених даних у блоці (це включає заголовок блоку,
jpayne@68 1409 доповнення блоку та поля перевірок)
jpayne@68 1410 .IP 15. 4
jpayne@68 1411 Об'єм пам'яті (у байтах), який потрібен для розпаковування цього блоку за
jpayne@68 1412 допомогою цієї версії \fBxz\fP
jpayne@68 1413 .IP 16. 4
jpayne@68 1414 Ланцюжок фільтрів. Зауважте, що більшість параметрів, які використано під
jpayne@68 1415 час стискання, не є наперед відомим, оскільки у заголовках \fB.xz\fP
jpayne@68 1416 зберігаються лише параметри, які потрібні для розпаковування.
jpayne@68 1417 .RE
jpayne@68 1418 .PD
jpayne@68 1419 .PP
jpayne@68 1420 Стовпчики у рядках \fBsummary\fP:
jpayne@68 1421 .PD 0
jpayne@68 1422 .RS
jpayne@68 1423 .IP 2. 4
jpayne@68 1424 Об'єм пам'яті (у байтах), який потрібен для розпаковування цього файла за
jpayne@68 1425 допомогою цієї версії \fBxz\fP
jpayne@68 1426 .IP 3. 4
jpayne@68 1427 \fByes\fP або \fBno\fP вказує, якщо усі заголовки блоків містять одразу стиснений
jpayne@68 1428 розмір та розпакований розмір
jpayne@68 1429 .PP
jpayne@68 1430 \fIПочинаючи з\fP \fBxz\fP \fI5.1.2alpha:\fP
jpayne@68 1431 .IP 4. 4
jpayne@68 1432 Мінімальна версія \fBxz\fP, яка потрібна для розпаковування файла
jpayne@68 1433 .RE
jpayne@68 1434 .PD
jpayne@68 1435 .PP
jpayne@68 1436 Стовпчики рядка \fBtotals\fP:
jpayne@68 1437 .PD 0
jpayne@68 1438 .RS
jpayne@68 1439 .IP 2. 4
jpayne@68 1440 Кількість потоків
jpayne@68 1441 .IP 3. 4
jpayne@68 1442 Кількість блоків
jpayne@68 1443 .IP 4. 4
jpayne@68 1444 Стиснутий розмір
jpayne@68 1445 .IP 5. 4
jpayne@68 1446 Нестиснутий розмір
jpayne@68 1447 .IP 6. 4
jpayne@68 1448 Середній коефіцієнт стискання
jpayne@68 1449 .IP 7. 4
jpayne@68 1450 Список відокремлених комами назв перевірок цілісності, результати яких
jpayne@68 1451 наявні у файлах
jpayne@68 1452 .IP 8. 4
jpayne@68 1453 Розмір доповнення потоку
jpayne@68 1454 .IP 9. 4
jpayne@68 1455 Кількість файлів. Наявний тут для зберігання такого самого порядку
jpayne@68 1456 стовпчиків, що і у попередніх рядках \fBfile\fP.
jpayne@68 1457 .PD
jpayne@68 1458 .RE
jpayne@68 1459 .PP
jpayne@68 1460 Якщо \fB\-\-verbose\fP було вказано двічі, до рядка \fBtotals\fP буде включено
jpayne@68 1461 додаткові стовпчики:
jpayne@68 1462 .PD 0
jpayne@68 1463 .RS
jpayne@68 1464 .IP 10. 4
jpayne@68 1465 Максимальний об'єм пам'яті (у байтах), який потрібен для розпаковування
jpayne@68 1466 файлів за допомогою цієї версії \fBxz\fP
jpayne@68 1467 .IP 11. 4
jpayne@68 1468 \fByes\fP або \fBno\fP вказує, якщо усі заголовки блоків містять одразу стиснений
jpayne@68 1469 розмір та розпакований розмір
jpayne@68 1470 .PP
jpayne@68 1471 \fIПочинаючи з\fP \fBxz\fP \fI5.1.2alpha:\fP
jpayne@68 1472 .IP 12. 4
jpayne@68 1473 Мінімальна версія \fBxz\fP, яка потрібна для розпаковування файла
jpayne@68 1474 .RE
jpayne@68 1475 .PD
jpayne@68 1476 .PP
jpayne@68 1477 У майбутніх версіях може бути додано нові типи рядків і нові стовпчики до
jpayne@68 1478 наявних типів рядків, але наявні стовпчики мають лишитися незмінними.
jpayne@68 1479 .
jpayne@68 1480 .SS "Довідка з фільтрування"
jpayne@68 1481 \fBxz \-\-robot \-\-filters\-help\fP виведе список підтримуваних фільтрів у такому
jpayne@68 1482 форматі:
jpayne@68 1483 .PP
jpayne@68 1484 \fIфільтр\fP\fB:\fP\fIпараметр\fP\fB=<\fP\fIзначення\fP\fB>,\fP\fIпараметр\fP\fB=<\fP\fIзначення\fP\fB>\fP...
jpayne@68 1485 .TP
jpayne@68 1486 \fIфільтр\fP
jpayne@68 1487 Назва фільтра
jpayne@68 1488 .TP
jpayne@68 1489 \fIпараметр\fP
jpayne@68 1490 Назва специфічного для фільтра параметра
jpayne@68 1491 .TP
jpayne@68 1492 \fIзначення\fP
jpayne@68 1493 Числові діапазони \fIvalue\fP слід вказати у форматі
jpayne@68 1494 \fB<\fP\fIмінімум\fP\fB\-\fP\fIмаксимум\fP\fB>\fP. Варіанти рядка \fIзначення\fP
jpayne@68 1495 показано у \fB< >\fP і відокремлено символом \fB|\fP.
jpayne@68 1496 .PP
jpayne@68 1497 Кожен фільтр буде виведено до окремого рядка.
jpayne@68 1498 .
jpayne@68 1499 .SS "Дані щодо обмеження пам'яті"
jpayne@68 1500 \fBxz \-\-robot \-\-info\-memory\fP виводить один рядок з декількома відокремленими
jpayne@68 1501 табуляціями стовпчиками:
jpayne@68 1502 .IP 1. 4
jpayne@68 1503 Загальний об'єм фізичної пам'яті (RAM) у байтах.
jpayne@68 1504 .IP 2. 4
jpayne@68 1505 Обмеження на використання пам'яті для стискання у байтах
jpayne@68 1506 (\fB\-\-memlimit\-compress\fP). Особливе значення \fB0\fP вказує на типові
jpayne@68 1507 налаштування, якими для однопотокового режиму є налаштування без обмеження
jpayne@68 1508 на використання пам'яті.
jpayne@68 1509 .IP 3. 4
jpayne@68 1510 Обмеження на використання пам'яті для розпакування у байтах
jpayne@68 1511 (\fB\-\-memlimit\-decompress\fP). Особливе значення \fB0\fP вказує на типові
jpayne@68 1512 налаштування, якими для однопотокового режиму є налаштування без обмеження
jpayne@68 1513 на використання пам'яті.
jpayne@68 1514 .IP 4. 4
jpayne@68 1515 Починаючи з \fBxz\fP 5.3.4alpha: використання пам'яті для багатопотокового
jpayne@68 1516 розпаковування у байтах (\fB\-\-memlimit\-mt\-decompress\fP). Ніколи не дорівнює
jpayne@68 1517 нулеві, оскільки буде використано специфічне для системи типове значення,
jpayne@68 1518 яке показано у стовпчику 5, якщо обмеження не встановлено явним чином. Також
jpayne@68 1519 ніколи не перевищуватиме значення у стовпчику 3, навіть якщо було вказано
jpayne@68 1520 більше значення за допомогою \fB\-\-memlimit\-mt\-decompress\fP.
jpayne@68 1521 .IP 5. 4
jpayne@68 1522 Починаючи з \fBxz\fP 5.3.4alpha: специфічне для системи типове обмеження на
jpayne@68 1523 використання пам'яті, яке використовують для обмеження кількості потоків при
jpayne@68 1524 стисканні з автоматичною кількістю потоків (\fB\-\-threads=0\fP) і без визначення
jpayne@68 1525 обмеження на використання пам'яті (\fB\-\-memlimit\-compress\fP). Це значення
jpayne@68 1526 також використовують як типове значення для \fB\-\-memlimit\-mt\-decompress\fP.
jpayne@68 1527 .IP 6. 4
jpayne@68 1528 Починаючи з \fBxz\fP 5.3.4alpha: кількість доступних потоків обробки процесора.
jpayne@68 1529 .PP
jpayne@68 1530 У майбутньому у виведенні \fBxz \-\-robot \-\-info\-memory\fP може бути більше
jpayne@68 1531 стовпчиків, але у виведеному буде не більше за один рядок.
jpayne@68 1532 .
jpayne@68 1533 .SS Версія
jpayne@68 1534 \fBxz \-\-robot \-\-version\fP виведе назву версії \fBxz\fP і liblzma у такому
jpayne@68 1535 форматі:
jpayne@68 1536 .PP
jpayne@68 1537 \fBXZ_VERSION=\fP\fIXYYYZZZS\fP
jpayne@68 1538 .br
jpayne@68 1539 \fBLIBLZMA_VERSION=\fP\fIXYYYZZZS\fP
jpayne@68 1540 .TP
jpayne@68 1541 \fIX\fP
jpayne@68 1542 Основна версія.
jpayne@68 1543 .TP
jpayne@68 1544 \fIYYY\fP
jpayne@68 1545 Проміжна версія. Непарні номери буде використано для стабільних
jpayne@68 1546 версій. Непарні номери є номерами тестових версій.
jpayne@68 1547 .TP
jpayne@68 1548 \fIZZZ\fP
jpayne@68 1549 Рівень латання для стабільних випусків або просто лічильник для випусків,
jpayne@68 1550 які перебувають у розробці.
jpayne@68 1551 .TP
jpayne@68 1552 \fIS\fP
jpayne@68 1553 Стабільність. 0 — alpha, 1 — beta, а 2 означає «стабільна версія». \fIS\fP має
jpayne@68 1554 завжди дорівнювати 2, якщо \fIYYY\fP є парним.
jpayne@68 1555 .PP
jpayne@68 1556 \fIXYYYZZZS\fP є тим самим в обох рядках, якщо \fBxz\fP і liblzma належать до
jpayne@68 1557 одного випуску XZ Utils.
jpayne@68 1558 .PP
jpayne@68 1559 Приклади: 4.999.9beta — це \fB49990091\fP, а 5.0.0 — це \fB50000002\fP.
jpayne@68 1560 .
jpayne@68 1561 .SH "СТАН ВИХОДУ"
jpayne@68 1562 .TP
jpayne@68 1563 \fB0\fP
jpayne@68 1564 Усе добре.
jpayne@68 1565 .TP
jpayne@68 1566 \fB1\fP
jpayne@68 1567 Сталася помилка.
jpayne@68 1568 .TP
jpayne@68 1569 \fB2\fP
jpayne@68 1570 Сталося щось варте попередження, але справжніх помилок не сталося.
jpayne@68 1571 .PP
jpayne@68 1572 Зауваження (не попередження або помилки), які виведено до стандартного
jpayne@68 1573 виведення помилок, не впливають на стан виходу.
jpayne@68 1574 .
jpayne@68 1575 .SH СЕРЕДОВИЩЕ
jpayne@68 1576 \fBxz\fP обробляє списки відокремлених пробілами параметрів зі змінних
jpayne@68 1577 середовища \fBXZ_DEFAULTS\fP і \fBXZ_OPT\fP, перш ніж обробляти параметри з рядка
jpayne@68 1578 команди. Зауважте, що буде оброблено лише параметри зі змінних середовища;
jpayne@68 1579 усі непараметричні записи буде без повідомлень проігноровано. Обробку буде
jpayne@68 1580 виконано за допомогою функції \fBgetopt_long\fP(3), яку також використовують
jpayne@68 1581 для аргументів рядка команди.
jpayne@68 1582 .TP
jpayne@68 1583 \fBXZ_DEFAULTS\fP
jpayne@68 1584 Специфічні для користувача або загальносистемні типові параметри. Зазвичай,
jpayne@68 1585 їх встановлюють у скрипті ініціалізації оболонки для типового вмикання
jpayne@68 1586 обмеження на використання пам'яті у \fBxz\fP. Окрім скриптів ініціалізації
jpayne@68 1587 оболонки і подібних особливих випадків, не слід встановлювати або
jpayne@68 1588 скасовувати встановлення значення \fBXZ_DEFAULTS\fP у скриптах.
jpayne@68 1589 .TP
jpayne@68 1590 \fBXZ_OPT\fP
jpayne@68 1591 Цю змінну призначено для передавання параметрів до \fBxz\fP, якщо неможливо
jpayne@68 1592 встановити параметри безпосередньо у рядку команди \fBxz\fP. Це трапляється,
jpayne@68 1593 якщо \fBxz\fP запущено скриптом або інструментом, наприклад, GNU \fBtar\fP(1):
jpayne@68 1594 .RS
jpayne@68 1595 .RS
jpayne@68 1596 .PP
jpayne@68 1597 .nf
jpayne@68 1598 \f(CRXZ_OPT=\-2v tar caf foo.tar.xz foo\fR
jpayne@68 1599 .fi
jpayne@68 1600 .RE
jpayne@68 1601 .RE
jpayne@68 1602 .IP ""
jpayne@68 1603 Скрипти можуть використовувати \fBXZ_OPT\fP, наприклад, для встановлення
jpayne@68 1604 специфічних типових параметрів стискання. Втім, рекомендуємо дозволити
jpayne@68 1605 користувачам перевизначати \fBXZ_OPT\fP, якщо це має якісь причини. Наприклад,
jpayne@68 1606 у скриптах \fBsh\fP(1) можна скористатися чимось таким:
jpayne@68 1607 .RS
jpayne@68 1608 .RS
jpayne@68 1609 .PP
jpayne@68 1610 .nf
jpayne@68 1611 \f(CRXZ_OPT=${XZ_OPT\-"\-7e"}
jpayne@68 1612 export XZ_OPT\fR
jpayne@68 1613 .fi
jpayne@68 1614 .RE
jpayne@68 1615 .RE
jpayne@68 1616 .
jpayne@68 1617 .SH "СУМІСНІСТЬ ІЗ LZMA UTILS"
jpayne@68 1618 Синтаксис рядка команди \fBxz\fP практично є надбудовою щодо \fBlzma\fP, \fBunlzma\fP
jpayne@68 1619 і \fBlzcat\fP з LZMA Utils 4.32.x. У більшості випадків можна замінити LZMA
jpayne@68 1620 Utils XZ Utils без порушення працездатності наявних скриптів. Втім, існують
jpayne@68 1621 певні несумісності, які іноді можуть спричиняти проблеми.
jpayne@68 1622 .
jpayne@68 1623 .SS "Рівні шаблонів стискання"
jpayne@68 1624 Нумерація у шаблонах рівнів стискання у \fBxz\fP не є тотожною до нумерації у
jpayne@68 1625 LZMA Utils. Найважливішою відмінністю є прив'язка розмірів словника до
jpayne@68 1626 різних шаблонів. Розмір словника грубо рівний використанню пам'яті у засобі
jpayne@68 1627 розпаковування.
jpayne@68 1628 .RS
jpayne@68 1629 .PP
jpayne@68 1630 .TS
jpayne@68 1631 tab(;);
jpayne@68 1632 c c c
jpayne@68 1633 c n n.
jpayne@68 1634 Рівень;xz;LZMA Utils
jpayne@68 1635 \-0;256 КіБ;н/д
jpayne@68 1636 \-1;1 МіБ;64 КіБ
jpayne@68 1637 \-2;2 МіБ;1 МіБ
jpayne@68 1638 \-3;4 МіБ;512 КіБ
jpayne@68 1639 \-4;4 МіБ;1 МіБ
jpayne@68 1640 \-5;8 МіБ;2 МіБ
jpayne@68 1641 \-6;8 МіБ;4 МіБ
jpayne@68 1642 \-7;16 МіБ;8 МіБ
jpayne@68 1643 \-8;32 МіБ;16 МіБ
jpayne@68 1644 \-9;64 МіБ;32 МіБ
jpayne@68 1645 .TE
jpayne@68 1646 .RE
jpayne@68 1647 .PP
jpayne@68 1648 Відмінності у розмірах словників також впливають на використання пам'яті
jpayne@68 1649 засобом стискання, але є і інші відмінності між LZMA Utils і XZ Utils, які
jpayne@68 1650 роблять різницю ще помітнішою:
jpayne@68 1651 .RS
jpayne@68 1652 .PP
jpayne@68 1653 .TS
jpayne@68 1654 tab(;);
jpayne@68 1655 c c c
jpayne@68 1656 c n n.
jpayne@68 1657 Рівень;xz;LZMA Utils 4.32.x
jpayne@68 1658 \-0;3 МіБ;н/д
jpayne@68 1659 \-1;9 МіБ;2 МіБ
jpayne@68 1660 \-2;17 МіБ;12 МіБ
jpayne@68 1661 \-3;32 МіБ;12 МіБ
jpayne@68 1662 \-4;48 МіБ;16 МіБ
jpayne@68 1663 \-5;94 МіБ;26 МіБ
jpayne@68 1664 \-6;94 МіБ;45 МіБ
jpayne@68 1665 \-7;186 МіБ;83 МіБ
jpayne@68 1666 \-8;370 МіБ;159 МіБ
jpayne@68 1667 \-9;674 МіБ;311 МіБ
jpayne@68 1668 .TE
jpayne@68 1669 .RE
jpayne@68 1670 .PP
jpayne@68 1671 Типовим рівнем стискання у LZMA Utils є \fB\-7\fP, а у XZ Utils — \fB\-6\fP, отже,
jpayne@68 1672 обидва комплекти програм типово використовують словник розміром у 8 МіБ.
jpayne@68 1673 .
jpayne@68 1674 .SS "Потокові і непотокові файл .lzma"
jpayne@68 1675 Розмір нестисненого файла може бути збережено у заголовку \fB.lzma\fP. LZMA
jpayne@68 1676 Utils зберігають дані при стисканні звичайних файлів. Альтернативним
jpayne@68 1677 підходом є позначення нестисненого розміру як невідомого і використання
jpayne@68 1678 позначки кінця вмісту для позначення місця, де засіб розпаковування має
jpayne@68 1679 зупинитися. У LZMA Utils цей спосіб використовують, якщо нестиснений розмір
jpayne@68 1680 є невідомим, що трапляється, наприклад, для конвеєрів обробки даних.
jpayne@68 1681 .PP
jpayne@68 1682 У \fBxz\fP передбачено підтримку розпаковування файлів \fB.lzma\fP з позначкою
jpayne@68 1683 кінця вмісту та без неї, але усі файли \fB.lzma\fP, які створено за допомогою
jpayne@68 1684 \fBxz\fP, використовують позначку кінця вмісту, а нестиснений розмір у
jpayne@68 1685 заголовку \fB.lzma\fP позначають як невідомий. Це може призвести до проблем у
jpayne@68 1686 деяких нетипових ситуаціях. Наприклад, розпакувальник \fB.lzma\fP у вбудованому
jpayne@68 1687 пристрої може працювати лише з файлами, для яких відомий нестиснений
jpayne@68 1688 розмір. Якщо ви зіткнулися з цією проблемою, вам слід скористатися LZMA
jpayne@68 1689 Utils або LZMA SDK для створення файлів \fB.lzma\fP із відомим розміром
jpayne@68 1690 нестиснених даних.
jpayne@68 1691 .
jpayne@68 1692 .SS "Непідтримувані файли .lzma"
jpayne@68 1693 У форматі \fB.lzma\fP можливі значення \fIlc\fP аж до 8 і значення \fIlp\fP аж до
jpayne@68 1694 4. LZMA Utils можуть розпаковувати файли із будь\-якими значеннями \fIlc\fP і
jpayne@68 1695 \fIlp\fP, але завжди створюють файли з \fBlc=3\fP і \fBlp=0\fP. Створення файлів з
jpayne@68 1696 іншими значеннями \fIlc\fP і \fIlp\fP є можливим за допомогою \fBxz\fP і LZMA SDK.
jpayne@68 1697 .PP
jpayne@68 1698 Реалізація фільтра LZMA1 у liblzma потребує, щоби сума \fIlc\fP і \fIlp\fP не
jpayne@68 1699 перевищувала 4. Отже, файли \fB.lzma\fP, у яких перевищено обмеження, не може
jpayne@68 1700 бути розпаковано за допомогою \fBxz\fP.
jpayne@68 1701 .PP
jpayne@68 1702 LZMA Utils створюють лише файли \fB.lzma\fP, які мають розмір словника у 2^\fIn\fP
jpayne@68 1703 (степінь 2), але приймають файли із будь\-яким розміром словника. liblzma
jpayne@68 1704 приймає лише файли \fB.lzma\fP, які мають розмір словника 2^\fIn\fP або 2^\fIn\fP +
jpayne@68 1705 2^(\fIn\fP\-1). Так зроблено для зменшення помилок при виявленні файлів
jpayne@68 1706 \&\fB.lzma\fP.
jpayne@68 1707 .PP
jpayne@68 1708 Ці обмеження не мають призводити до проблем на практиці, оскільки практично
jpayne@68 1709 усі файли \fB.lzma\fP було стиснено з використанням параметрів, які приймає
jpayne@68 1710 liblzma.
jpayne@68 1711 .
jpayne@68 1712 .SS "Кінцевий мотлох"
jpayne@68 1713 При розпаковуванні LZMA Utils без повідомлень ігнорують усі дані після
jpayne@68 1714 першого потоку \fB.lzma\fP. У більшості випадків це пов'язано із вадою у
jpayne@68 1715 програмі. Це також означає, що у LZMA Utils не передбачено підтримки
jpayne@68 1716 розпаковування з'єднаних файлів \fB.lzma\fP.
jpayne@68 1717 .PP
jpayne@68 1718 Якщо після першого потоку \fB.lzma\fP лишилися дані, \fBxz\fP вважатиме файл
jpayne@68 1719 пошкодженим, якщо не було використано \fB\-\-single\-stream\fP. Це може зашкодити
jpayne@68 1720 роботі скриптів, де зроблено припущення, що кінцеві зайві дані буде
jpayne@68 1721 проігноровано.
jpayne@68 1722 .
jpayne@68 1723 .SH ПРИМІТКИ
jpayne@68 1724 .
jpayne@68 1725 .SS "Стискання даних може бути різним"
jpayne@68 1726 Точні стиснені дані, які створено на основі того самого нестисненого файла
jpayne@68 1727 вхідних даних, можуть бути різними для різних версій XZ Utils, навіть якщо
jpayne@68 1728 використано однакові параметри стискання. Причиною цього є удосконалення у
jpayne@68 1729 кодувальнику (пришвидшення або краще стискання) без зміни формату
jpayne@68 1730 файлів. Виведені дані можуть бути різними навіть для різних збірок тієї
jpayne@68 1731 самої версії XZ Utils, якщо використано різні параметри збирання.
jpayne@68 1732 .PP
jpayne@68 1733 Написане вище означає, що після реалізації \fB\-\-rsyncable\fP файли\-результати
jpayne@68 1734 не обов'язково можна буде синхронізувати за допомогою rsyncable, якщо старий
jpayne@68 1735 і новий файли було стиснено за допомогою тієї самої версії xz. Цю проблему
jpayne@68 1736 можна усунути, якщо буде заморожено частину реалізації кодувальника, щоб
jpayne@68 1737 введені для rsync дані були стабільними між версіями xz.
jpayne@68 1738 .
jpayne@68 1739 .SS "Вбудовані розпакувальники .xz"
jpayne@68 1740 У вбудованих реалізаціях розпакувальника \fB.xz\fP, подібних до XZ Embedded, не
jpayne@68 1741 обов'язково передбачено підтримку файлів, які створено із типами
jpayne@68 1742 \fIперевірки\fP цілісності, відмінними від \fBnone\fP і \fBcrc32\fP. Оскільки типовим
jpayne@68 1743 є \fB\-\-check=crc64\fP, вам слід використовувати \fB\-\-check=none\fP або
jpayne@68 1744 \fB\-\-check=crc32\fP при створенні файлів для вбудованих систем.
jpayne@68 1745 .PP
jpayne@68 1746 Поза вбудованими системами, в усіх засобах розпаковування формату \fB.xz\fP
jpayne@68 1747 передбачено підтримку усіх типів \fIперевірок\fP або принаймні можливість
jpayne@68 1748 розпакувати файл без перевірки цілісності, якщо підтримки певної
jpayne@68 1749 \fIперевірки\fP не передбачено.
jpayne@68 1750 .PP
jpayne@68 1751 У XZ Embedded передбачено підтримку BCJ, але лише з типовим початковим
jpayne@68 1752 зсувом.
jpayne@68 1753 .
jpayne@68 1754 .SH ПРИКЛАДИ
jpayne@68 1755 .
jpayne@68 1756 .SS Основи
jpayne@68 1757 Стиснути файл \fIfoo\fP до \fIfoo.xz\fP за допомогою типового рівня стискання
jpayne@68 1758 (\fB\-6\fP) і вилучити \fIfoo\fP, якщо стискання відбулося успішно:
jpayne@68 1759 .RS
jpayne@68 1760 .PP
jpayne@68 1761 .nf
jpayne@68 1762 \f(CRxz foo\fR
jpayne@68 1763 .fi
jpayne@68 1764 .RE
jpayne@68 1765 .PP
jpayne@68 1766 Розпакувати \fIbar.xz\fP до \fIbar\fP і не вилучати \fIbar.xz\fP, навіть якщо
jpayne@68 1767 розпаковування відбулося успішно:
jpayne@68 1768 .RS
jpayne@68 1769 .PP
jpayne@68 1770 .nf
jpayne@68 1771 \f(CRxz \-dk bar.xz\fR
jpayne@68 1772 .fi
jpayne@68 1773 .RE
jpayne@68 1774 .PP
jpayne@68 1775 Створити \fIbaz.tar.xz\fP з використанням шаблона \fB\-4e\fP (\fB\-4 \-\-extreme\fP),
jpayne@68 1776 який є повільнішими за типовий \fB\-6\fP, але потребує менше пам'яті для
jpayne@68 1777 стискання та розпаковування (48\ МіБ та 5\ МіБ, відповідно):
jpayne@68 1778 .RS
jpayne@68 1779 .PP
jpayne@68 1780 .nf
jpayne@68 1781 \f(CRtar cf \- baz | xz \-4e > baz.tar.xz\fR
jpayne@68 1782 .fi
jpayne@68 1783 .RE
jpayne@68 1784 .PP
jpayne@68 1785 Суміш стиснених і нестиснених файлів можна розпакувати до стандартного
jpayne@68 1786 виведення за допомогою єдиної команди:
jpayne@68 1787 .RS
jpayne@68 1788 .PP
jpayne@68 1789 .nf
jpayne@68 1790 \f(CRxz \-dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt\fR
jpayne@68 1791 .fi
jpayne@68 1792 .RE
jpayne@68 1793 .
jpayne@68 1794 .SS "Паралельне стискання багатьох файлів"
jpayne@68 1795 У GNU і *BSD можна скористатися \fBfind\fP(1) і \fBxargs\fP(1) для паралельного
jpayne@68 1796 стискання багатьох файлів:
jpayne@68 1797 .RS
jpayne@68 1798 .PP
jpayne@68 1799 .nf
jpayne@68 1800 \f(CRfind . \-type f \e! \-name '*.xz' \-print0 \e
jpayne@68 1801 | xargs \-0r \-P4 \-n16 xz \-T1\fR
jpayne@68 1802 .fi
jpayne@68 1803 .RE
jpayne@68 1804 .PP
jpayne@68 1805 Параметр \fB\-P\fP \fBxargs\fP(1) встановлює кількість паралельних процесів
jpayne@68 1806 \fBxz\fP. Найкраще значення параметра \fB\-n\fP залежить від того, скільки файлів
jpayne@68 1807 має бути стиснено. Якщо файлів мало, значенням, ймовірно, має бути 1. Якщо
jpayne@68 1808 файлів десятки тисяч, може знадобитися значення 100 або навіть більше, щоб
jpayne@68 1809 зменшити кількість процесів \fBxz\fP, які врешті створить \fBxargs\fP(1).
jpayne@68 1810 .PP
jpayne@68 1811 Параметр \fB\-T1\fP для \fBxz\fP тут для примусового встановлення однопотокового
jpayne@68 1812 режиму, оскільки для керування рівнем паралелізації використано \fBxargs\fP(1).
jpayne@68 1813 .
jpayne@68 1814 .SS "Режим робота"
jpayne@68 1815 Обчислити скільки байтів було заощаджено загалом після стискання декількох
jpayne@68 1816 файлів:
jpayne@68 1817 .RS
jpayne@68 1818 .PP
jpayne@68 1819 .nf
jpayne@68 1820 \f(CRxz \-\-robot \-\-list *.xz | awk '/^totals/{print $5\-$4}'\fR
jpayne@68 1821 .fi
jpayne@68 1822 .RE
jpayne@68 1823 .PP
jpayne@68 1824 Скрипту можуть знадобитися дані щодо того, що використано достатньо нову
jpayne@68 1825 версію \fBxz\fP. У наведеному нижче скрипті \fBsh\fP(1) виконано перевірку того,
jpayne@68 1826 що номер версії засобу \fBxz\fP є принаймні рівним 5.0.0. Цей спосіб є сумісним
jpayne@68 1827 зі старими тестовими версіями, де не передбачено підтримки параметра
jpayne@68 1828 \fB\-\-robot\fP:
jpayne@68 1829 .RS
jpayne@68 1830 .PP
jpayne@68 1831 .nf
jpayne@68 1832 \f(CRif ! eval "$(xz \-\-robot \-\-version 2> /dev/null)" ||
jpayne@68 1833 [ "$XZ_VERSION" \-lt 50000002 ]; then
jpayne@68 1834 echo "Your xz is too old."
jpayne@68 1835 fi
jpayne@68 1836 unset XZ_VERSION LIBLZMA_VERSION\fR
jpayne@68 1837 .fi
jpayne@68 1838 .RE
jpayne@68 1839 .PP
jpayne@68 1840 Встановити обмеження на використання пам'яті для розпаковування за допомогою
jpayne@68 1841 \fBXZ_OPT\fP, але якщо обмеження вже було встановлено, не збільшувати його:
jpayne@68 1842 .RS
jpayne@68 1843 .PP
jpayne@68 1844 .nf
jpayne@68 1845 \f(CRNEWLIM=$((123 << 20))\ \ # 123 MiB
jpayne@68 1846 OLDLIM=$(xz \-\-robot \-\-info\-memory | cut \-f3)
jpayne@68 1847 if [ $OLDLIM \-eq 0 \-o $OLDLIM \-gt $NEWLIM ]; then
jpayne@68 1848 XZ_OPT="$XZ_OPT \-\-memlimit\-decompress=$NEWLIM"
jpayne@68 1849 export XZ_OPT
jpayne@68 1850 fi\fR
jpayne@68 1851 .fi
jpayne@68 1852 .RE
jpayne@68 1853 .
jpayne@68 1854 .SS "Нетипові ланцюжки фільтрів засобу стискання"
jpayne@68 1855 Найпростішим використанням ланцюжка фільтрів є налаштовування шаблона
jpayne@68 1856 LZMA2. Це може бути корисним, оскільки у шаблонах використано лише
jpayne@68 1857 підмножину потенційно корисних комбінацій параметрів стискання.
jpayne@68 1858 .PP
jpayne@68 1859 При налаштовуванні шаблонів LZMA2 корисними є стовпчики CompCPU таблиць з
jpayne@68 1860 описів параметрів \fB\-0\fP ... \fB\-9\fP і \fB\-\-extreme\fP. Ось відповідні частини з
jpayne@68 1861 цих двох таблиць:
jpayne@68 1862 .RS
jpayne@68 1863 .PP
jpayne@68 1864 .TS
jpayne@68 1865 tab(;);
jpayne@68 1866 c c
jpayne@68 1867 n n.
jpayne@68 1868 Шаблон;CompCPU
jpayne@68 1869 \-0;0
jpayne@68 1870 \-1;1
jpayne@68 1871 \-2;2
jpayne@68 1872 \-3;3
jpayne@68 1873 \-4;4
jpayne@68 1874 \-5;5
jpayne@68 1875 \-6;6
jpayne@68 1876 \-5e;7
jpayne@68 1877 \-6e;8
jpayne@68 1878 .TE
jpayne@68 1879 .RE
jpayne@68 1880 .PP
jpayne@68 1881 Якщо вам відомо, що певний файл потребує дещо більшого словника (наприклад,
jpayne@68 1882 32\ МіБ) для якісного стискання, але ви хочете стиснути його швидше за
jpayne@68 1883 команду \fBxz \-8\fP, можна внести зміни до шаблона із нижчим значенням CompCPU
jpayne@68 1884 (наприклад, 1) для використання більшого словника:
jpayne@68 1885 .RS
jpayne@68 1886 .PP
jpayne@68 1887 .nf
jpayne@68 1888 \f(CRxz \-\-lzma2=preset=1,dict=32MiB foo.tar\fR
jpayne@68 1889 .fi
jpayne@68 1890 .RE
jpayne@68 1891 .PP
jpayne@68 1892 Для певних файлів наведена вище команда може працювати швидше за \fBxz \-6\fP і
jpayne@68 1893 стискати дані значно краще. Втім, слід наголосити, переваги більшого
jpayne@68 1894 словника з одночасним низьким значенням CompCPU проявляються лише для деяких
jpayne@68 1895 файлів. Найочевиднішим випадком, коли великий словник є корисним, є випадок,
jpayne@68 1896 коли архів містить дуже подібні файли розміром у принаймні декілька
jpayne@68 1897 мегабайтів. Розмір словника має бути значно більшим за будь\-який окремий
jpayne@68 1898 файл, щоб у LZMA2 було використано усі переваги подібностей між послідовними
jpayne@68 1899 файлами.
jpayne@68 1900 .PP
jpayne@68 1901 Якщо дуже високий рівень використання пам'яті у засобі стискання або
jpayne@68 1902 розпаковування не є проблемою, і файли, який стискають має об'єм у принаймні
jpayne@68 1903 декілька десятків мегабайтів, може бути корисним використання навіть
jpayne@68 1904 більшого за 64 МіБ словника, який використано у \fBxz \-9\fP:
jpayne@68 1905 .RS
jpayne@68 1906 .PP
jpayne@68 1907 .nf
jpayne@68 1908 \f(CRxz \-vv \-\-lzma2=dict=192MiB big_foo.tar\fR
jpayne@68 1909 .fi
jpayne@68 1910 .RE
jpayne@68 1911 .PP
jpayne@68 1912 Використання \fB\-vv\fP (\fB\-\-verbose \-\-verbose\fP), подібно до наведеного вище
jpayne@68 1913 прикладу, може бути корисним для перегляду вимог з боку засобів стискання та
jpayne@68 1914 розпаковування до пам'яті. Пам'ятайте, що використання словника, розмір
jpayne@68 1915 якого перевищує розмір файла, який стискають, є простоюю витратою пам'яті,
jpayne@68 1916 отже наведену вище команду не варто використовувати для малих файлів.
jpayne@68 1917 .PP
jpayne@68 1918 Іноді час стискання не має значення, але використання пам'яті засобом
jpayne@68 1919 розпаковування має бути низьким для того, щоб, наприклад, уможливити
jpayne@68 1920 розпаковування файла у вбудованій системі. У наведеній нижче команді
jpayne@68 1921 використано \fB\-6e\fP (\fB\-6 \-\-extreme\fP) як основу і встановлено розмір словника
jpayne@68 1922 лише у 64\ КіБ. Файл\-результат можна розпакувати за допомогою XZ Embedded
jpayne@68 1923 (ось чому використано \fB\-\-check=crc32\fP) з використанням лише 100\ КіБ
jpayne@68 1924 пам'яті.
jpayne@68 1925 .RS
jpayne@68 1926 .PP
jpayne@68 1927 .nf
jpayne@68 1928 \f(CRxz \-\-check=crc32 \-\-lzma2=preset=6e,dict=64KiB foo\fR
jpayne@68 1929 .fi
jpayne@68 1930 .RE
jpayne@68 1931 .PP
jpayne@68 1932 Якщо вам потрібно витиснути зі стискання максимальну кількість байтів, може
jpayne@68 1933 допомогти коригування кількості бітів контексту літералів (\fIlc\fP) та
jpayne@68 1934 кількість позиційних бітів (\fIpb\fP). Також може допомогти коригування
jpayne@68 1935 кількості бітів позиції літералів (\fIlp\fP), але, зазвичай, важливішими є
jpayne@68 1936 \fIlc\fP і \fIpb\fP. Наприклад, в архівах зі початковим кодом міститься
jpayne@68 1937 здебільшого текст US\-ASCII, щось подібне до наведеного нижче може дещо (на
jpayne@68 1938 щось близьке до 0,1\ %) зменшити файл, порівняно із \fBxz \-6e\fP (спробуйте
jpayne@68 1939 також без \fBlc=4\fP):
jpayne@68 1940 .RS
jpayne@68 1941 .PP
jpayne@68 1942 .nf
jpayne@68 1943 \f(CRxz \-\-lzma2=preset=6e,pb=0,lc=4 source_code.tar\fR
jpayne@68 1944 .fi
jpayne@68 1945 .RE
jpayne@68 1946 .PP
jpayne@68 1947 Використання іншого фільтра разом із LZMA2 може покращити стискання для
jpayne@68 1948 певних типів файлів. Наприклад, для стискання бібліотеки спільного
jpayne@68 1949 користування x86\-32 або x86\-64 з використанням фільтра BCJ x86 скористайтеся
jpayne@68 1950 такою командою:
jpayne@68 1951 .RS
jpayne@68 1952 .PP
jpayne@68 1953 .nf
jpayne@68 1954 \f(CRxz \-\-x86 \-\-lzma2 libfoo.so\fR
jpayne@68 1955 .fi
jpayne@68 1956 .RE
jpayne@68 1957 .PP
jpayne@68 1958 Зауважте, що порядок параметрів фільтрування має значення. Якщо \fB\-\-x86\fP
jpayne@68 1959 вказано після \fB\-\-lzma2\fP, \fBxz\fP повідомить про помилку, оскільки після LZMA2
jpayne@68 1960 не може бути жодного фільтра, а також оскільки фільтр BCJ x86 не можна
jpayne@68 1961 використовувати як останній фільтр у ланцюжку.
jpayne@68 1962 .PP
jpayne@68 1963 Фільтр Delta разом із LZMA2 може дати добрі результати для растрових
jpayne@68 1964 зображень. Зазвичай, результати є кращими за формат PNG, у якого є декілька
jpayne@68 1965 більш досконалих фільтрів, ніж проста дельта, але там використовують для
jpayne@68 1966 стискання Deflate.
jpayne@68 1967 .PP
jpayne@68 1968 Зображення слід берегти у нестисненому форматі, наприклад, як нестиснений
jpayne@68 1969 TIFF. Параметр відстані фільтра Delta встановлюють так, щоб він збігався із
jpayne@68 1970 кількістю байтів на піксель у зображенні. Наприклад, для 24\-бітового
jpayne@68 1971 растрового зображення RGB слід вказати \fBdist=3\fP, а також добре передати
jpayne@68 1972 \fBpb=0\fP до LZMA2 для пристосовування до трибайтового вирівнювання:
jpayne@68 1973 .RS
jpayne@68 1974 .PP
jpayne@68 1975 .nf
jpayne@68 1976 \f(CRxz \-\-delta=dist=3 \-\-lzma2=pb=0 foo.tiff\fR
jpayne@68 1977 .fi
jpayne@68 1978 .RE
jpayne@68 1979 .PP
jpayne@68 1980 Якщо в один архів запаковано декілька зображень (наприклад, в архів
jpayne@68 1981 \&\fB.tar\fP), фільтр Delta також даватиме добрі результати, якщо у всіх
jpayne@68 1982 зображеннях однакова кількість байтів для кожного пікселя.
jpayne@68 1983 .
jpayne@68 1984 .SH "ДИВ. ТАКОЖ"
jpayne@68 1985 \fBxzdec\fP(1), \fBxzdiff\fP(1), \fBxzgrep\fP(1), \fBxzless\fP(1), \fBxzmore\fP(1),
jpayne@68 1986 \fBgzip\fP(1), \fBbzip2\fP(1), \fB7z\fP(1)
jpayne@68 1987 .PP
jpayne@68 1988 XZ Utils: <https://tukaani.org/xz/>
jpayne@68 1989 .br
jpayne@68 1990 Вбудовуваний XZ: <https://tukaani.org/xz/embedded.html>
jpayne@68 1991 .br
jpayne@68 1992 LZMA SDK: <https://7\-zip.org/sdk.html>