Конвертер TAR в TXZ

Сожмите архив TAR современным алгоритмом XZ - стандарт сжатия в Linux-дистрибутивах последних лет

Без установки программ • Быстрая конверсия • Конфиденциально и безопасно

Шаг 1

Перетащите файлы или выберите

Вы можете конвертировать 3 файла до 10 МБ каждый

Шаг 1

Перетащите файлы или выберите

Вы можете конвертировать 3 файла до 10 МБ каждый

Что такое конвертация TAR в TXZ?

Конвертация TAR в TXZ - это применение современного алгоритма сжатия XZ к контейнеру TAR. Расширение .txz (или .tar.xz) обозначает архив, в котором TAR-поток пропущен через XZ-компрессор, использующий LZMA2 (Lempel-Ziv-Markov chain Algorithm 2). TAR появился в 1979 году как стандарт Unix для объединения файлов в один контейнер с сохранением POSIX-семантики. XZ был представлен в 2009 году командой Tukaani как наследник LZMA Utils и быстро стал стандартом сжатия в современных Linux-дистрибутивах.

Главная мотивация перевода TAR в TXZ - получение архива с одним из лучших коэффициентов сжатия в индустрии при сохранении полной Unix-семантики. На текстовых данных XZ даёт сжатие на 10-30% эффективнее BZIP2 и на 30-60% эффективнее GZIP. Распаковка XZ существенно быстрее BZIP2, что делает формат подходящим для долговременного хранения с эпизодическим доступом к данным.

При конвертации TAR-поток подаётся на вход XZ-компрессора. Алгоритм LZMA2 анализирует данные с настраиваемым словарём (по умолчанию 8 МБ, до 1.5 ГБ при максимальном уровне), выявляет дальние повторения и кодирует их компактно через диапазонное кодирование с контекстной моделью. Полученный поток заворачивается в XZ-контейнер с проверкой целостности по нескольким алгоритмам (CRC-32, CRC-64, SHA-256).

Технические различия форматов TAR и TXZ

Алгоритмы и принципы сжатия

TAR работает как чистый контейнер последовательного доступа. Каждый файл предваряется заголовком фиксированного размера 512 байт с метаданными: имя файла (до 100 символов в стандарте, до 255 в расширении PAX), размер, тип записи, права POSIX, владелец и группа, временные метки, контрольная сумма заголовка. Данные файлов записываются без модификации.

XZ оборачивает поток данных в многослойный контейнер. Внутренний слой - алгоритм LZMA2, разделяющий данные на блоки и применяющий к каждому LZMA с динамической перенастройкой параметров. Алгоритм находит повторения через словарь до 1.5 ГБ и кодирует их арифметическим кодером с контекстной моделью. Внешний слой XZ-формата добавляет заголовок, индекс блоков и контрольные суммы, что позволяет проверять целостность и потенциально извлекать отдельные блоки.

Сравнительная таблица возможностей

Характеристика TAR TXZ
Год создания 1979 2009
Сжатие данных Нет LZMA2
Размер словаря Не применимо до 1.5 ГБ (макс)
POSIX-атрибуты Полная поддержка Полная поддержка
Потоковая обработка Да Да
Параллельное сжатие Нет Да (xz multithreaded)
Контрольные суммы Только заголовка CRC-32, CRC-64, SHA-256
Восстановление Нет Через индекс блоков
Скорость сжатия Мгновенная Медленная
Скорость распаковки Мгновенная Высокая
Использование памяти при сжатии Минимум до 700 МБ при ультра

Реальные показатели сжатия

Соотношение размеров для типичных рабочих наборов при использовании XZ уровня 9 (ультра):

Тип данных TAR (исходный) TXZ Коэффициент
Исходный код Linux 1 ГБ 95-115 МБ в 8.5-10.5 раз
Системный пакет (.deb extracted) 200 МБ 25-35 МБ в 5.7-8 раз
Дамп PostgreSQL 1 ГБ 65-85 МБ в 12-15 раз
Системные логи journald 800 МБ 20-30 МБ в 26-40 раз
Документация текстовая 400 МБ 50-65 МБ в 6-8 раз
Архив исходников Mozilla 500 МБ 65-80 МБ в 6-7.5 раз
Бинарные исполняемые файлы 300 МБ 90-130 МБ в 2.3-3.3 раза
Уже сжатые JPEG/MP4 1 ГБ 990-1000 МБ менее 1%

XZ обеспечивает выдающееся сжатие текстовых данных и кода. Преимущество над BZIP2 особенно заметно на больших объёмах однотипных данных благодаря огромному словарю.

Когда необходима конвертация TAR в TXZ

Дистрибуция в современных Linux-дистрибутивах

Стандарт сжатия для пакетов и образов в 2010-2020-х годах:

  • Пакеты Debian и Ubuntu - формат .deb использует TXZ для сжатия данных пакета (data.tar.xz), что экономит сотни мегабайт на каждом релизе.
  • Пакеты Arch Linux - официальные репозитории распространяют пакеты в .pkg.tar.xz (с 2020 переход на zst).
  • Пакеты Fedora и RHEL - RPM-формат поддерживает XZ-сжатие данных, что делает образы дистрибутивов компактнее.
  • ISO-образы Linux - сжатые образы установочных дисков используют XZ для уменьшения объёма загрузки.
  • Релизы ядра Linux - с 2013 года официальные tarball-ы ядра распространяются как .tar.xz.

Хранение редко обновляемых данных

XZ идеально подходит для архивов с однократной записью и многократным чтением:

  • Холодное хранилище баз данных - дампы PostgreSQL, MySQL, ClickHouse за прошлые периоды занимают на 30-50% меньше места по сравнению с GZIP.
  • Архив научных публикаций - PDF-метаданные, BibTeX-каталоги, текстовые корпуса.
  • Геномные базы данных - последовательности FASTA с миллионами записей.
  • Корпоративные бэкапы - архивы документов, переписки, внутренних wiki за годы.

Кросс-серверная репликация и зеркалирование

В условиях ограниченной полосы пропускания между ЦОД важна каждая килобайта:

  • Репликация дистрибутивов - публичные зеркала Debian, Fedora, openSUSE экономят терабайты трафика.
  • CDN-доставка - крупные архивы (медицинские снимки, GIS-данные) распространяются в TXZ для скорости.
  • Бэкап в облако - S3, Backblaze B2, Wasabi платят по объёму, и компактный TXZ напрямую снижает счета.
  • Распространение виртуальных машин - готовые образы Vagrant box, OVA-шаблоны, контейнерные образы.

Архивы для сертификации и аудита

Когда важна и компактность, и проверяемость:

  • Архивы для аудиторских проверок - финансовые отчёты, логи операций, истории транзакций. SHA-256 встроен в формат XZ.
  • Юридические долгосрочные архивы - документы с контрактами, копии переписки, материалы дел.
  • Государственное хранение - архивы министерств, статистические отчёты, переписи населения.
  • Архивы СМИ - расшифровки интервью, текстовые версии передач.

Процесс конвертации: что происходит с архивом

Этапы преобразования

  1. Открытие TAR-потока - архив читается последовательно. Внутренняя структура файлов и заголовков не модифицируется. TAR подаётся в XZ как непрерывный поток байтов.

  2. Разбиение на блоки XZ - входной поток делится на блоки, размер которых определяется параметрами сжатия. Стандартный размер блока совпадает с размером словаря LZMA2.

  3. Применение LZMA2 к каждому блоку - алгоритм строит модель данных, ищет повторяющиеся последовательности на расстоянии до размера словаря (8 МБ по умолчанию, до 1.5 ГБ на максимальном уровне). Найденные повторения кодируются ссылками "длина + расстояние".

  4. Арифметическое кодирование с контекстной моделью - LZMA2 использует range coder с адаптивной контекстной моделью, которая отслеживает вероятности появления символов в зависимости от предшествующего контекста.

  5. Запись блоков в XZ-контейнер - сжатые блоки оборачиваются заголовками с информацией о размере, контрольными суммами CRC-32 или CRC-64 (по умолчанию) или SHA-256 (опционально). В конец архива добавляется индекс всех блоков.

  6. Финализация - формируется завершающая структура с подписью формата и общей контрольной суммой.

Что сохраняется, а что меняется

Сохраняется полностью:

  • Содержимое всех файлов байт в байт после распаковки
  • Имена и расширения с поддержкой Unicode (через PAX-расширения)
  • Полная структура папок и подпапок
  • POSIX-права rwx для владельца, группы, остальных
  • Идентификаторы владельца uid и группы gid
  • Имена пользователя и группы
  • Временные метки модификации, доступа, изменения
  • Символические и жёсткие ссылки в Unix-семантике
  • FIFO-каналы, sparse-файлы, специальные устройства
  • Расширенные атрибуты xattr и ACL (через PAX)

Меняется:

  • Размер архива (уменьшается в 4-30 раз для подходящих данных)
  • Способ хранения (блочное LZMA2-сжатие)
  • Добавляются контрольные суммы по нескольким алгоритмам

Сравнение TXZ с другими форматами архивов

TXZ против TGZ

TGZ - классический Unix-стандарт с GZIP.

Критерий TXZ TGZ
Алгоритм LZMA2 DEFLATE
Размер словаря до 1.5 ГБ 32 КБ
Сжатие текста Лучше на 30-60% Базовое
Скорость сжатия Медленнее в 5-15 раз Очень быстрая
Скорость распаковки Сопоставима Очень быстрая
Возраст 2009 1992

TXZ лучше для архивирования, TGZ - для частого доступа.

TXZ против TBZ2

TBZ2 использует более старый BZIP2.

Критерий TXZ TBZ2
Алгоритм LZMA2 BZIP2 (BWT)
Сжатие Лучше на 10-30% Базовое
Скорость распаковки Быстрее в 2-3 раза Средняя
Использование памяти Больше Меньше
Современность Активно используется Сохраняется в legacy

TXZ - современный преемник TBZ2 в Linux-экосистеме.

TXZ против 7Z

7Z использует тот же LZMA2 в другом контейнере.

Критерий TXZ 7Z
Алгоритм LZMA2 LZMA2
POSIX-атрибуты Полная поддержка Частичная
Многотомность Через split Нативная
Шифрование Через GPG-обёртку Встроенное AES-256
Распространённость Linux Кросс-платформенная

TXZ - выбор для Unix-сред, 7Z - для смешанных команд.

Совместимость и поддержка TXZ

Операционные системы

XZ Utils присутствует во всех современных Unix-системах:

  • Linux - утилиты xz, xzcat, unxz входят в базовый набор Debian, Ubuntu, Fedora, Arch, openSUSE, Alpine начиная с 2010 года.
  • macOS - команда tar поддерживает флаг -J для прозрачной работы с XZ. Доступна из Terminal без установки.
  • FreeBSD, OpenBSD - XZ Utils установлен по умолчанию из базовой системы.
  • Solaris, AIX - доступен через дополнительные пакеты Solaris CSW или IBM AIX Toolbox.
  • Windows - поддержка через 7-Zip, Bandizip, PeaZip, WinRAR. Также доступно в Cygwin, MSYS2, WSL.
  • Android, iOS - через файловые менеджеры с поддержкой Linux-форматов.

Инструменты разработки

Поддержка XZ/LZMA2 встроена в стандартные библиотеки большинства языков:

Язык Стандартная библиотека
Python модуль lzma, библиотека python-xz
Java пакет org.tukaani.xz (XZ for Java)
C / C++ библиотека liblzma
Go пакет github.com/ulikunitz/xz
Rust crate xz2, lzma-rs
JavaScript модули xz-decompress, lzma-native
Ruby gem ruby-xz

История развития формата

XZ - результат работы команды Tukaani, развивающей LZMA Utils. Спецификация открыта и распространяется в общественное достояние.

Ключевые этапы:

  • 2001 - Игорь Павлов представляет алгоритм LZMA в составе 7-Zip
  • 2008 - выход LZMA2, оптимизированной для многопоточности
  • 2009 - первый релиз XZ Utils как отдельного пакета с собственным форматом
  • 2010 - переход ядра Linux на XZ для архивов исходников (с 2013 - официально)
  • 2014 - Debian переводит формат пакетов .deb на XZ-сжатие данных
  • 2018 - Arch Linux делает .pkg.tar.xz основным форматом
  • 2022 - стабилизация версии 5.4 с улучшенной многопоточностью

За короткий срок XZ стал доминирующим форматом сжатия в Linux-инфраструктуре.

Ограничения и альтернативы

Когда конвертация в TXZ не оптимальна

  • Уже сжатые данные - JPEG, MP4, MP3, ZIP внутри TAR не получат заметного выигрыша при значительной нагрузке на CPU.
  • Сценарии с ограниченными ресурсами - на embedded-устройствах с 64-128 МБ RAM сжатие LZMA2 требует слишком много памяти.
  • Частая операция архивирования - если бэкап делается ежечасно, скорость GZIP может быть важнее размера.
  • Совместимость с очень старыми системами - системы 2000-х годов могут не иметь установленного XZ Utils.

Альтернативные сценарии

Если TXZ по каким-то причинам не подходит:

  • TAR -> TGZ - быстрее во всех операциях, классический Unix-стандарт
  • TAR -> TBZ2 - середина между скоростью и сжатием для legacy-совместимости
  • TAR -> 7Z - аналогичное сжатие плюс шифрование AES-256 и многотомность
  • TAR -> ZIP - для отправки получателям без Unix-инструментов

TXZ остаётся оптимальным выбором для современной Linux-инфраструктуры, где важен размер архива при сохранении совместимости с экосистемой.

Для чего используют конвертацию TAR в TXZ

Дистрибуция Linux-пакетов

Подготовка пакетов и tarball-ов для официальных репозиториев Debian, Arch, Fedora, Ubuntu

Холодное хранилище данных

Долгосрочное архивирование редко используемых баз данных, документов, научных корпусов с экономией места

Распространение через CDN

Публикация больших архивов через сети доставки контента с минимизацией трафика и времени загрузки

Резервное копирование в облако

Бэкап на платные облачные сервисы (S3, B2) с прямой экономией на стоимости хранения и передачи

Советы по конвертации TAR в TXZ

1

Используйте многопоточность для ускорения

На многоядерных процессорах XZ может работать параллельно, разбивая архив на независимые блоки. Это ускоряет сжатие в разы при минимальной потере эффективности

2

Подбирайте уровень под задачу

Для повседневных задач достаточно уровня 6 (по умолчанию). Уровень 9 экономит дополнительные 2-5% размера, но увеличивает время и память значительно. Для бэкапов с ежедневной ротацией оптимален уровень 4-6

Частые вопросы

Чем XZ отличается от LZMA?
LZMA - это алгоритм сжатия, представленный Игорем Павловым в 7-Zip в 2001 году. XZ - это формат-контейнер, использующий улучшенную версию алгоритма (LZMA2) с дополнительной обвязкой: заголовками, индексом блоков, расширенными контрольными суммами. XZ может работать с теми же данными, что и LZMA, но обеспечивает потоковую обработку и проверку целостности.
Сохранятся ли права доступа Unix при конвертации TAR в TXZ?
Да, полностью. XZ применяется к готовому TAR-потоку как обёртка сжатия и не модифицирует внутреннюю структуру TAR. Все POSIX-атрибуты (rwx-права для владельца, группы, остальных), идентификаторы uid и gid, имена пользователя и группы, временные метки, символические и жёсткие ссылки, FIFO-каналы, sparse-файлы, расширенные атрибуты xattr и ACL сохраняются в исходном виде.
Сколько памяти нужно для распаковки TXZ?
Распаковка XZ требует памяти, сопоставимой с размером словаря, использованного при сжатии. По умолчанию (уровень 6) это 8 МБ, что доступно даже на слабых устройствах. На максимальном уровне 9 (ультра) словарь может быть 64 МБ или больше. Информация о требуемой памяти записана в заголовке архива, утилита `xz --info` покажет её до распаковки.
Можно ли открыть TXZ на Windows без установки программ?
Нет, Windows не имеет встроенной поддержки XZ. Потребуется архиватор: 7-Zip распространяется бесплатно и распаковывает TXZ в два этапа. WinRAR (с версии 5.50), Bandizip, PeaZip также поддерживают формат. На современных Windows можно использовать WSL (Windows Subsystem for Linux), где XZ Utils доступен из коробки.
Стоит ли использовать TXZ вместо TGZ для всех задач?
Не всегда. TXZ выигрывает у TGZ по сжатию (на 30-60% меньше для текста), но проигрывает в скорости работы (в 5-15 раз медленнее при сжатии). Для частых операций (ежечасные бэкапы, кэширование сборки в CI/CD, оперативная передача данных) TGZ предпочтительнее. Для долговременного хранения и дистрибуции, где архив создаётся однажды и распаковывается многократно, TXZ оправдан.
Поддерживается ли пакетная конвертация нескольких TAR-файлов?
Да, можно загрузить несколько TAR-архивов одновременно, и каждый будет конвертирован в отдельный TXZ с тем же базовым именем. Все результаты доступны для скачивания индивидуально после завершения обработки.
Что произойдёт при повреждении TXZ-архива?
XZ имеет блочную структуру с индексом и контрольными суммами на каждый блок. Если повреждение коснулось одного блока, остальные могут быть распакованы. Утилита `xz --decompress --keep` с флагом `--single-stream` помогает извлечь данные до точки повреждения. Дополнительно XZ поддерживает SHA-256 контрольные суммы для надёжной проверки целостности.