У наступній статті ми збираємось поглянути на утиліту стиснення xz. Колега розповіла нам про неї деякий час тому у статті про як архівувати та розпаковувати файли в Ubuntu. Використання цього інструменту подібне до gzip та bzip2.
Може використовуватися для стискати або розпаковувати файли відповідно до обраного режиму роботи. Методом стиснення, що використовується цими файлами, є на основі алгоритму LZMA/ LZMA2. Цей алгоритм почав розроблятись наприкінці 90-х рр. Він використовує схему словника стиснення, подібну до LZ77.
Алгоритм стиснення LZ77 належить до сімейства компресори без втрат, також відомий як текстові компресори. Вони відомі під цією назвою, оскільки при стисненні вони не пропускають інформацію з файлу. На відміну від компресорів, що використовують алгоритми типу згубний. Вони опускають деяку інформацію, яка має на меті значно зменшити розмір вихідного файлу. Прикладом цього може бути jpeg, MP3, MPG тощо.
У порівнянні з файлами "gz", "xz" має кращий ступінь стиснення і коротший час декомпресії. Однак, коли ми використовуємо налаштування стиснення за замовчуванням, для розпакування буде потрібно більше пам'яті. Gzip має дещо менший обсяг пам'яті.
Файли .xz використовуються для стиснення та розпакування даних, завдяки чому передача файлів через Інтернет або зберігання інформації на жорстких дисках займає менше. На закінчення, якщо ми хочемо стиснути файл, прагнучи займати якомога менше місця, ми маємо можливість стиснути його за допомогою xz.
Як використовувати стиснення XZ
Компрес
El найпростіший приклад Стиснення файлу за допомогою xz відбувається наступним чином. У терміналі (Ctrl + Alt + T) пишемо:
xz android-x86_64-7.1-r2.iso
Ви також можете використовувати -z варіант для виконання стиснення:
xz -z android-x86_64-7.1-r2.iso
Ці команди стискають файл, але видаляють вихідний файл. Так ми не прагнемо видалити вихідні файли, ми будемо використовувати -к варіант наступним чином:
xz -k android-x86_64-7.1-r2.iso
Розпакуйте
Щоб розпакувати файл, ми зможемо використовувати файл -d варіант:
xz -d android-x86_64-7.1-r2.iso
Ми також можемо досягти цього за допомогою варіант unxz:
unxz android-x86_64-7.1-r2.iso
Силове стиснення
Якщо операція не вдається, наприклад, якщо є стислий файл з такою ж назвою, ми будемо використовувати файл -f варіант змусити процес:
xz -kf android-x86_64-7.1-r2.iso
Встановіть рівні стиснення
Цей інструмент підтримує різні задані рівні стиснення (Від 0 до 9. За замовчуванням значення 6). Ми також зможемо використовувати псевдоніми як –швидкий (це буде швидко, але з меншим стисненням) встановити значення 0 та –найкраще встановити значення 9 (повільне, але більш високе стиснення). Ось кілька прикладів того, як встановити ці рівні:
xz -k -8 android-x86_64-7.1-r2.iso xz -k --best android-x86_64-7.1-r2.iso
Обмеження пам’яті
Якщо у вас є невелика кількість системної пам'яті і ви хочете стиснути величезний файл, ми матимемо можливість використовувати файл -опція пам'яті = ліміт (граничне значення може бути в МБ або у відсотках оперативної пам'яті), щоб встановити обмеження використання пам'яті для стиснення:
xz -k --best --memlimit-compress=10% android-x86_64-7.1-r2.iso
Увімкнути беззвучний режим
Якщо ми зацікавлені виконати стиснення в беззвучному режимі, нам залишиться лише додати -q варіант. Ми також можемо включити багатослівний режим з -v, як показано в наступному:
xz -k -q android-x86_64-7.1-r2.iso xz -k -qv android-x86_64-7.1-r2.iso
Створіть файл tar.xz
Далі наведено приклад використання для отримання файл із розширенням tar.xz.
tar -cf - *.txt | xz -7 > txtfiles.tar.xz
Для досягнення цієї ж мети ми також можемо використовувати:
tar -cJf txtfiles.tar.xz *.txt
Перевірте цілісність стиснених файлів
Ми можемо перевірити цілісність стиснених файлів за допомогою -t варіант. Використання -l ми можемо побачити інформацію про стислий файл.
xz -t txtfiles.tar.xz xz -l txtfiles.tar.xz
Це хороший інструмент для стиснення файлів. У цій статті ми розглянемо лише деякі приклади стиснення та розпакування. Щоб отримати докладнішу інформацію про все, що ми можемо зробити, ви можете перейти на сторінку людина xz.