Перетащите файлы или выберите
Вы можете конвертировать 3 файла до 10 МБ каждый
Перетащите файлы или выберите
Вы можете конвертировать 3 файла до 10 МБ каждый
Что такое конвертация 7Z в TXZ?
Конвертация 7Z в TXZ - это переход к современному Unix-формату архивов, использующему тот же алгоритм сжатия, что и сам 7Z. Расширение TXZ - сокращение от tar.xz: данные сначала упаковываются в стандартный TAR-контейнер, сохраняющий иерархию каталогов и POSIX-метаданные, после чего поток сжимается утилитой XZ. Формат XZ был представлен в 2009 году коллективом разработчиков под руководством Лассе Колликойнена и спроектирован как преемник BZIP2 для Unix-сообщества.
Ключевая особенность TXZ заключается в том, что его компрессор XZ Utils использует алгоритм LZMA2 - тот же самый, что встроен в 7Z. Это означает, что после конвертации степень сжатия будет очень близка к исходному 7Z, обычно отличаясь на единицы процентов. Главный выигрыш - не в размере, а в нативной интеграции с Unix-инструментарием: TXZ открывается командой tar xJf без установки сторонних пакетов, поддерживает потоковую обработку через pipe, корректно работает с симлинками, правами доступа и владельцами файлов.
В современных дистрибутивах Linux формат TXZ занял доминирующее положение. Архивы исходного кода ядра Linux на kernel.org публикуются в tar.xz. Пакеты deb для Debian и Ubuntu и пакеты rpm для Fedora и RHEL внутри используют XZ-сжатие данных. Многие проекты GNU мигрировали с tar.bz2 на tar.xz из-за лучшего сжатия и сопоставимой скорости распаковки.
Технические различия форматов 7Z и TXZ
Алгоритмы сжатия
Оба формата используют LZMA2 - словарный алгоритм с диапазонным кодированием. Это означает, что фундаментально способ сжатия одинаков: поиск длинных повторений в большом адаптивном словаре до 1 ГБ, кодирование контекстной модели через арифметическое кодирование, опциональные предварительные фильтры (BCJ для исполняемых файлов, дельта для медиа).
Основные различия лежат в области:
- Контейнер - 7Z использует собственный формат архива, TXZ применяет TAR с обёрткой XZ.
- Solid-режим - 7Z по умолчанию объединяет файлы в один блок для сжатия, что эффективнее для коллекций похожих документов. XZ работает потоково и не имеет понятия solid в том же смысле.
- Шифрование - 7Z поддерживает AES-256 встроенно, в стандарте XZ шифрования нет.
- Метаданные - 7Z частично поддерживает POSIX-атрибуты, TAR обеспечивает полную их поддержку.
Сравнительная таблица
| Характеристика | 7Z | TXZ |
|---|---|---|
| Год создания | 1999 | 2009 (XZ) + 1979 (TAR) |
| Базовый алгоритм | LZMA2 | LZMA2 |
| Размер словаря | до 1 ГБ | до 1.5 ГБ |
| Контейнер | Собственный | TAR (Unix) |
| Solid-сжатие | Да, по умолчанию | Не применяется |
| Скорость распаковки | Быстрая | Быстрая |
| Память при сжатии | До 1 ГБ | До 700 МБ при стандартных уровнях |
| Память при распаковке | До 256 МБ | До 65 МБ |
| POSIX-атрибуты | Частично | Полная поддержка через TAR |
| Шифрование | AES-256 встроено | Нет в стандарте |
| Восстановление при повреждении | Ограниченное | Контрольные суммы блоков |
Реальные степени сжатия
Поскольку алгоритм одинаковый, разница между размерами TXZ и 7Z обычно невелика:
| Тип данных | Исходный размер | 7Z (LZMA2 ультра) | TXZ (xz -9) | Разница |
|---|---|---|---|---|
| Исходный код проекта | 100 МБ | 12-15 МБ | 12-16 МБ | около 0-7% |
| Текстовые документы | 50 МБ | 8-10 МБ | 8-11 МБ | около 0-10% |
| Дамп базы данных | 200 МБ | 20-30 МБ | 22-32 МБ | около 5-10% |
| Логи серверов | 200 МБ | 8-12 МБ | 9-13 МБ | около 5-10% |
| JPG-фотографии | 500 МБ | 498 МБ | 498-499 МБ | минимально |
| Однотипные документы | 100 МБ | 5-8 МБ | 7-12 МБ | 7Z выигрывает на solid |
TXZ может проигрывать 7Z на коллекциях очень похожих файлов из-за отсутствия solid-режима в полном смысле, но в большинстве сценариев разница в пределах 5-10%.
Когда необходима конвертация 7Z в TXZ
Стандарт современных Linux-репозиториев
XZ стал основным компрессором для важнейших проектов Unix-мира:
- Ядро Linux - архивы исходников linux-x.x.x.tar.xz публикуются на kernel.org как основной формат с 2013 года.
- GNU-проекты - glibc, gcc, binutils, coreutils перешли на tar.xz для своих релизов.
- Пакеты deb - современные .deb для Debian и Ubuntu используют XZ-сжатие data.tar внутри.
- Пакеты rpm - Fedora, RHEL, openSUSE применяют XZ для payload-секции пакетов.
- Arch Linux - бинарные пакеты pkg.tar.xz и pkg.tar.zst распространяются через pacman.
Если архив предназначен для долгосрочного хранения в репозитории Linux-проекта, TXZ - наиболее ожидаемый формат.
Сохранение POSIX-атрибутов
Поскольку TXZ строится на TAR, он наследует все возможности по работе с метаданными Unix:
- Права доступа chmod - режимы файлов и каталогов сохраняются в восьмеричной форме в каждом заголовке записи.
- Владельцы UID/GID - идентификаторы пользователя и группы вместе с именами фиксируются в заголовках.
- Временные метки - mtime в каждой записи, через PAX-расширение можно добавить atime, ctime и наносекундную точность.
- Симлинки и хардлинки - сохраняются как ссылки на целевой путь без дублирования содержимого.
- Специальные файлы - блочные и символьные устройства, FIFO, сокеты переносятся как соответствующие типы записей.
- Расширенные атрибуты - через PAX-расширения переносятся xattr, ACL, SELinux-метки.
Долгосрочное архивирование
Для архивов длительного хранения TXZ имеет ряд преимуществ:
- Лучшее сжатие в Unix-семействе - на 10-30% компактнее BZIP2 при сопоставимой скорости распаковки.
- Контрольные суммы блоков - формат XZ снабжает каждый блок CRC-32 или CRC-64, опционально SHA-256.
- Возможность независимого извлечения блоков - в многоблочных XZ можно частично восстановить данные при повреждении.
- Открытая стандартизация - спецификация XZ опубликована и поддерживается консорциумом The Tukaani Project.
- Стабильность формата - XZ не менял своего бинарного формата с 2009 года, обеспечивая обратную совместимость.
Передача через Unix-инструменты
TXZ удобно интегрируется с типичными Unix-конвейерами:
- Поток через ssh - команда
tar cJf - dir | ssh host 'tar xJf - -C /path'передаёт сжатые данные между серверами без промежуточных файлов. - Параллельное сжатие - утилита pxz и xz с флагом
-Tсжимают многопоточно, ускоряя обработку на современных CPU. - Пакетные менеджеры - dpkg, rpm, pacman работают с TXZ-данными нативно при установке пакетов.
- Средства резервного копирования - bacula, amanda, restic поддерживают TXZ как один из стандартных форматов.
Процесс конвертации: что происходит с архивом
Этапы преобразования
Чтение и декомпрессия 7Z - заголовок исходного архива анализируется, LZMA2-блоки распаковываются в исходные байты файлов. Для солид-архивов извлекается весь блок целиком.
Восстановление файлового дерева - имена, пути и POSIX-атрибуты восстанавливаются в иерархию каталогов с правами, владельцами и временными метками.
Формирование TAR-потока - каждый файл предваряется 512-байтным заголовком с метаданными (имя, размер, права, владелец, временные метки, тип записи, контрольная сумма), после чего идёт содержимое, выровненное по границе 512 байт.
Применение LZMA2 - TAR-поток разбивается на блоки и пропускается через LZMA2-компрессор. Алгоритм ищет повторения в адаптивном словаре до 1 ГБ.
XZ-обёртка - сжатый поток предваряется заголовком XZ stream с магическим числом, флагами и контрольной суммой. После каждого блока пишется проверочная сумма (CRC-32 по умолчанию, опционально CRC-64 или SHA-256).
Завершение - в конце файла записывается XZ-индекс с границами блоков для возможности случайного доступа в некоторых сценариях.
Сохранение - результат записывается с расширением .tar.xz или .txz.
Что сохраняется, а что меняется
Сохраняется:
- Имена файлов и каталогов с полными путями (включая Unicode)
- Содержимое всех файлов (байт в байт)
- Структура каталогов любой глубины
- Временные метки модификации
- Права доступа, владельцы, группы, симлинки
Меняется:
- Контейнер (с собственного 7Z на TAR)
- Способ упаковки (solid в 7Z может смениться на потоковое в XZ)
- Контрольные суммы (CRC-64 в 7Z может стать CRC-32 в XZ или наоборот)
Не переносится:
- Шифрование (стандарт XZ его не поддерживает)
- Solid-режим в первозданном виде (XZ работает по-другому)
- Расширенные NTFS-атрибуты (Unix-специфичны иные расширенные атрибуты)
Сравнение TXZ с другими форматами
TXZ против TBZ2
| Критерий | TXZ | TBZ2 |
|---|---|---|
| Алгоритм | LZMA2 | BWT + MTF + Хаффман |
| Сжатие текста | Лучше на 10-30% | Базовое |
| Скорость сжатия | Медленно | Медленно (но в 1.5-2 раза быстрее) |
| Скорость распаковки | Быстро | В 2 раза медленнее |
| Память при сжатии | До 700 МБ | 7 МБ |
| Текущая популярность | Растущая | Снижающаяся |
TXZ постепенно вытесняет TBZ2 в современных дистрибутивах.
TXZ против TGZ
| Критерий | TXZ | TGZ |
|---|---|---|
| Алгоритм | LZMA2 | DEFLATE |
| Сжатие текста | Лучше на 30-50% | Базовое |
| Скорость сжатия | Медленно | Очень быстро |
| Скорость распаковки | Быстро (но медленнее GZIP) | Очень быстро |
| Память при сжатии | До 700 МБ | 1-2 МБ |
| Хранение | Долгосрочное | Оперативное |
TXZ выигрывает в размере, TGZ - в скорости.
TXZ против 7Z
Они используют один алгоритм, но разные обёртки:
| Критерий | TXZ | 7Z |
|---|---|---|
| Контейнер | TAR (стандарт Unix) | Собственный |
| POSIX-атрибуты | Полная поддержка | Частичная |
| Шифрование | Нет в стандарте | AES-256 |
| Solid-сжатие | Не применяется | Да |
| Распространённость в Linux | Очень высокая | Через установку |
| Распространённость в Windows | Через установку | Через 7-Zip |
TXZ выбирают для Unix-задач, 7Z - для Windows и максимального сжатия.
Совместимость и поддержка TXZ
Операционные системы
TXZ - стандарт современных Unix-дистрибутивов:
- Linux - утилиты tar и xz входят в стандартный набор любого современного дистрибутива. Команда
tar xJf archive.tar.xzраспаковывает архив одним вызовом. - macOS - bsdtar поддерживает XZ начиная с OS X 10.10 (2014). На современных macOS работает из коробки.
- FreeBSD, OpenBSD, NetBSD - tar с поддержкой XZ встроен в базовые установки.
- Windows - системная команда tar в Windows 10/11 не поддерживает XZ напрямую, но 7-Zip, WinRAR, PeaZip открывают TXZ без проблем.
- Android и iOS - сторонние файловые менеджеры с поддержкой архивов справляются с tar.xz.
История и развитие XZ
Формат XZ имеет относительно молодую, но активную историю:
- 2005 - Игорь Павлов выпускает 7-Zip с алгоритмом LZMA, демонстрирующий впечатляющее сжатие.
- 2009 - Лассе Колликойнен и команда Tukaani Project выпускают XZ Utils, портируя LZMA2 в Unix-инструментарий.
- 2013 - kernel.org переходит на tar.xz как основной формат для исходников ядра Linux.
- 2014-2018 - крупные проекты GNU мигрируют с tar.bz2 на tar.xz, RPM и DEB пакеты переходят на XZ.
- Современность - XZ - доминирующий формат сжатия в Unix-репозиториях, активно развивается, в том числе с появлением многопоточных реализаций.
Языки программирования
Поддержка XZ и TAR встроена в стандартные библиотеки:
| Язык | Стандартная библиотека |
|---|---|
| Python | модули tarfile и lzma |
| Go | пакеты archive/tar и github.com/ulikunitz/xz |
| Rust | crate xz2 + tar |
| Java | Apache Commons Compress |
| Node.js | модули tar + lzma-native |
| C/C++ | библиотека liblzma |
Ограничения и альтернативы
Когда TXZ не оптимален
- Очень частые операции - медленное сжатие XZ делает его неудобным для непрерывного резервного копирования с короткими интервалами.
- Слабые системы - старые компьютеры, встраиваемые устройства, роутеры могут не справиться с памятью для XZ.
- Совместимость со старыми Unix - системы старше 10-15 лет могут не иметь xz в базовой установке.
Альтернативные сценарии
- 7Z в TAR.GZ - универсальный формат для оперативной работы и совместимости со старыми системами.
- 7Z в TAR.BZ2 - проверенная классика для проектов 2000-х годов.
- 7Z в TAR - чистый контейнер без сжатия для дальнейшей обработки.
- 7Z в ZIP - для отправки получателям с Windows-системой без архиваторов.
Конвертация в TXZ обоснована, когда требуется современный Unix-формат с максимальным сжатием LZMA2, нативной интеграцией с Linux-инструментами и совместимостью с актуальными репозиториями.
Для чего используют конвертацию 7Z в TXZ
Архивирование исходного кода
Подготовка релизов проектов в формате tar.xz, ожидаемом современными дистрибутивами Linux и репозиториями GNU
Долгосрочное хранение
Создание архивов с максимальным сжатием LZMA2 в стандартном Unix-контейнере для эффективного использования дискового пространства
Передача между серверами
Отправка архивов между Linux-серверами через ssh с использованием native инструментов tar и xz без установки сторонних утилит
Подготовка пакетов и образов
Создание payload-архивов для собственных дистрибутивных пакетов, контейнеров и образов в формате, совместимом с pacman, dpkg, rpm
Советы по конвертации 7Z в TXZ
Сжатие сопоставимо с 7Z
Поскольку XZ использует тот же алгоритм LZMA2, что и 7Z, степень сжатия TXZ практически совпадает с исходным архивом. Разница может составлять до 10%, в зависимости от типа данных и наличия solid-режима в 7Z
Распаковка быстрее сжатия
XZ - это асимметричный алгоритм: сжатие на максимальном уровне может быть медленным и требовать сотен мегабайт памяти, но распаковка работает быстро и нуждается всего в десятках мегабайт. Это делает TXZ удобным для архивов, которые открываются часто, но создаются редко