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