Оригинальный автор (ы) | Лассе Коллин |
---|---|
Разработчик (и) | Проект Тукаани |
Стабильный выпуск | 5.2.5 / 17 марта 2020 г. (2020-03-17) |
Репозиторий | ![]() |
Написано в | C |
Операционной системе | Кросс-платформенный |
Тип | Сжатие данных |
Лицензия | Общественное достояние. (но подробности см. в Разработка и внедрение ) |
Веб-сайт | tukaani.org / xz / |
XZ Utils (ранее LZMA Utils ) является набор бесплатного программного обеспечения командной строки компрессоров данных без потерь, включая lzma и xz, для Операционные системы типа Unix и, начиная с версии 5.0, Microsoft Windows.
xz обеспечивают более высокую степень сжатия, чем такие альтернативы, как gzip и bzip2. Скорость декомпрессии быстрее, чем bzip2, но медленнее, чем gzip. Сжатие может быть намного медленнее, чем gzip, и медленнее, чем bzip2 для высоких уровней сжатия, и наиболее полезно, когда сжатый файл будет использоваться много раз.
XZ Utils состоит из двух основных компонентов:
Существуют различные сочетания клавиш, например lzma (для xz --format = lzma ), unxz (для х z - распаковать ; аналогично gunzip ) и xzcat (для unxz --stdout ; аналогично zcat )
XZ Utils может сжимать и распаковывать как xz, так и lzma, но поскольку формат LZMA теперь устаревший, XZ Utils сжимает по умолчанию до xz.
Как поведение программного обеспечения, так и свойства формата файла были разработаны для работы аналогично популярных инструментов сжатия Unix gzip и bzip2. Он состоит из порта Unix LZMA- SDK Игоря Павлова , который имеет были адаптированы, чтобы легко вписываться в среды Unix и их обычную структуру и поведение.
xz поддерживает многопоточное сжатие (флаг -T
) с 2014 г., версия 5.2.0., по состоянию на 2019 г. поточная декомпрессия еще не реализована... Количество потоков может быть меньше заданного, если файл недостаточно велик для потоковой передачи с заданными настройками или если использование большего количества потоков превысит предел использования памяти.
Так же, как gzip и bzip, xz и lzma могут сжимать только отдельные файлы (или потоки данных) в качестве входных данных. Они не могут объединить несколько файлов в один архив - для этого сначала используется программа архивирования, например tar.
Сжатие архива:
xz my_archive.tar # приводит к my_archive.tar.xz lzma my_archive.tar # приводит к my_archive.tar.lzma
Распаковка архива:
unxz my_archive.tar.xz # приводит к my_archive.tar unlzma my_archive. tar.lzma # приводит к my_archive.tar
Версия 1.22 или выше реализации tar GNU имеет прозрачную поддержку tarballs, сжатых с помощью lzma и xz, с использованием переключателей --xz
или -J
для сжатия xz и --lzma
для сжатия LZMA.
Создание архива и его сжатие:
tar -c --xz -f my_archive.tar.xz / some_directory # приводит к my_archive.tar.xz tar -c --lzma -f my_archive.tar.lzma / some_directory # приводит к my_archive.tar.lzma
Распаковка архива и извлечение его содержимого:
tar -x --xz -f my_archive.tar.xz # результаты in / some_directory tar -x --lzma -f my_archive.tar.lzma # приводит к / some_directory
Пример однобуквенного tar для архива с сжатием и распаковкой с извлечением с использованием короткого суффикса
tar cJf keep.txz keep # archive, затем сжать каталог./keep/ в файл./keep.txz tar xJf keep.txz # распаковать, затем извлечь файл./keep.txz, создав каталог./keep/
Формат xz улучшает lzma, позволяя использовать фильтры предварительной обработки. Используемые точные фильтры аналогичны тем, которые используются в 7z, поскольку фильтры 7z доступны в открытом доступе через LZMA SDK.
Разработка XZ Utils проходила в рамках проекта Tukaani, которым руководил Майк Кезнер, небольшая группа разработчиков, которые когда-то поддерживали дистрибутив Linux на основе Slackware.
Весь исходный код для xz и liblzma был передан в общественное достояние. Распространение исходного кода XZ Utils дополнительно включает в себя несколько необязательных сценариев и пример программы, которые подпадают под действие различных версий GPL.
В частности, полный список сценариев GPL и исходных текстов, распространяемых с XZ Utils Программное обеспечение включает:
Полученное программное обеспечение xz и двоичные файлы liblzma являются общественным достоянием, если не включена дополнительная реализация LGPL getopt.
Бинарные файлы доступны для систем FreeBSD, Linux, Microsoft Windows и FreeDOS. Ряд дистрибутивов Linux, включая Fedora, Slackware, Ubuntu и Debian используют xz для сжатия свои программные пакеты. Arch Linux ранее использовал xz для сжатия пакетов, но по состоянию на 27 декабря 2019 года пакеты сжимаются со сжатием Zstandard. FTP-архив GNU также использует xz.