XZ Utils - XZ Utils
Оригинальный автор (ы) | Лассе Коллин |
---|---|
Разработчики) | Проект Тукаани |
Стабильный выпуск | 5.2.5 / 17 марта 2020 г.[1] |
Репозиторий | |
Написано в | C |
Операционная система | Кроссплатформенность |
Тип | Сжатие данных |
Лицензия | Всеобщее достояние.[2] (но подробности см. в Разработка и внедрение ) |
Интернет сайт | Tukaani |
XZ Utils (ранее LZMA Utils) представляет собой набор бесплатно программное обеспечение командная строка компрессоры данных без потерь, включая Lzma и xz, за Unix-подобный операционные системы и, начиная с версии 5.0, Майкрософт Виндоус.
xz обеспечивает более высокую степень сжатия, чем такие альтернативы, как gzip и bzip2. Скорость распаковки выше, чем у bzip2, но ниже, чем у gzip. Сжатие может быть намного медленнее, чем gzip, и медленнее, чем bzip2 для высоких уровней сжатия, и наиболее полезно, когда сжатый файл будет использоваться много раз.[3][4]
XZ Utils состоит из двух основных компонентов:
- xz, компрессор и декомпрессор командной строки (аналог gzip )
- liblzma, а библиотека программного обеспечения с API похожий на zlib
Существуют различные сочетания клавиш, например Lzma (за xz --format = lzma), unxz (за xz - распаковать; аналогично распаковать ) и xzcat (за unxz --stdout; аналогично zcat )
XZ Utils может сжимать и распаковывать как xz и Lzma форматы файлов, но поскольку формат LZMA сейчас наследие,[5] XZ Utils по умолчанию сжимает до xz.
Выполнение
Как поведение программного обеспечения, так и свойства формата файла были разработаны так, чтобы работать аналогично популярным инструментам сжатия Unix. gzip и bzip2. Он состоит из порта Unix Игорь Павлов ЛЗМА-SDK который был адаптирован, чтобы легко вписаться в среды Unix и их обычную структуру и поведение.
xz поддерживает многопоточное сжатие (-T
флаг)[6] с 2014 года версия 5.2.0. [7], по состоянию на 2019 год поточная декомпрессия еще не реализована. [8]. Количество потоков может быть меньше заданного, если файл недостаточно велик для потоковой передачи с заданными настройками или если использование большего количества потоков превысит лимит использования памяти. [9]
Так же, как gzip и bzip, xz и lzma могут сжимать только отдельные файлы (или потоки данных) в качестве входных данных. Они не могут объединить несколько файлов в один архив - для этого сначала используется программа архивирования, например деготь.
Сжатие архива:
xz my_archive.tar # результаты my_archive.tar.xzlzma my_archive.tar # результаты my_archive.tar.lzma
Распаковка архива:
unxz my_archive.tar.xz # приводит к my_archive.tarunlzma my_archive.tar.lzma # приводит к my_archive.tar
Версия 1.22 или выше GNU реализация tar имеет прозрачную поддержку tarballs, сжатых с помощью lzma и xz, используя переключатели --xz
или же -J
для сжатия xz и --льзма
для сжатия LZMA.
Создание архива и его сжатие:
tar -c --xz -f my_archive.tar.xz / some_directory # приводит к my_archive.tar.xztar -c --lzma -f my_archive.tar.lzma / some_directory # приводит к my_archive.tar.lzma
Распаковка архива и извлечение его содержимого:
tar -x --xz -f my_archive.tar.xz # результаты в / some_directorytar -x --lzma -f my_archive.tar.lzma # результаты в / some_directory
Пример однобуквенного tar для архива со сжатием и распаковкой с извлечением с использованием короткий суффикс
tar cJf keep.txz keep # archive, затем сжать каталог ./keep/ в файл ./keep.txztar xJf keep.txz # распаковать, затем извлечь файл ./keep.txz, создав каталог ./keep/
Формат xz
Формат xz улучшает lzma, позволяя использовать фильтры предварительной обработки. Используемые точные фильтры аналогичны тем, которые используются в 7z, поскольку фильтры 7z доступны в открытом доступе через LZMA SDK.
Разработка и внедрение
Разработка XZ Utils проходила в рамках проекта Tukaani, которым руководил Майк Кезнер, небольшая группа разработчиков, которые когда-то поддерживали Дистрибутив Linux на основе Slackware.
Все исходный код за xz и liblzma был выпущен в всеобщее достояние. Дистрибутив исходного кода XZ Utils дополнительно включает в себя несколько необязательных сценариев и пример программы, которые зависят от различных версий GPL.[2]
В частности, полный список GPL сценарии и исходники, распространяемые с программным обеспечением XZ Utils, включают:
- Необязательная реализация общей функции libc, Getopt (GNU GPL v2 и GNU LGPL v2.1 )
- Скрипт m4 для обнаружения потоков pthread (GNU GPL v3 )
- Некоторые несущественные скрипты-оболочки (xzgrep и т. Д.) (GNU GPL v2 )
- И пример программы scanlzma, которая не интегрирована с системой сборки
Получающиеся в результате двоичные файлы программного обеспечения xz и liblzma являются общественным достоянием, если только дополнительный LGPL Getopt реализация включена.[10]
Бинарные файлы доступны для FreeBSD, Linux системы, Майкрософт Виндоус, и FreeDOS. Номер Дистрибутивы Linux, включая Fedora, Slackware, Ubuntu, и Debian используйте xz для сжатия своих программных пакетов. Arch Linux ранее использовался xz для сжатия пакетов,[11] но с 27 декабря 2019 года пакеты сжаты с помощью Zстандарт сжатие.[12] В GNU FTP-архив также использует xz.
Смотрите также
Рекомендации
- ^ «Примечания к выпуску XZ Utils». [репозиторий git]. Лассе Коллин. 2020-03-17. Получено 2020-03-30.
- ^ а б Лицензирование на tukaani.org «Наиболее интересные части XZ Utils (например, liblzma) находятся в общественном достоянии. Вы можете делать все, что хотите, с частями общественного достояния. Некоторые части XZ Utils (например, система сборки и некоторые утилиты) находятся под разными лицензиями на бесплатное программное обеспечение, например как GNU LGPLv2.1, GNU GPLv2 или GNU GPLv3 ".
- ^ Генри-Стокер, Сандра (12 декабря 2017 г.). «Как выжать максимум из сжатия файлов Linux». Сетевой мир. Получено 2020-02-09.
- ^ «Сравнение производительности Gzip, Bzip2 и XZ». RootUsers. 2015-09-16. Получено 2020-02-09.
- ^ LZMA Utils, получено 2011-01-25
- ^ https://man.cx/xz
- ^ https://git.tukaani.org/?p=xz.git;a=blob;f=NEWS;hb=HEAD
- ^ https://man.cx/xz
- ^ https://man.cx/xz
- ^ «В каких случаях GPL распространяется и на выпуск программы под GPL?». GNU.org. Получено 21 августа 2019.
- ^ Пьер Шмитц (23 марта 2010 г.). «Новости: Переход на сжатие xz для новых пакетов».
- ^ «Arch Linux - Новости: теперь для сжатия пакетов используется Zstandard вместо xz». www.archlinux.org. Получено 2020-01-07.