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

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