Архив TAR, сжатый Gzip (.tar.gz)
POSIX.1 СтандартTar Gzip (.tar.gz, также известный как .tgz): это стандартный формат распространения программного обеспечения и упаковки архивов в мире Linux и открытого исходного кода, сочетающий в себе нативную упаковку TAR для Unix и универсальное сжатие Gzip.
Анализ и метаданные
Операционные системы и анализаторы файлов идентифицируют файлы TAR.GZ по начальной двоичной последовательности байтов:
Сигнатура заголовка на уровне байтов (Magic Bytes)
Операционные системы и анализаторы файлов идентифицируют файлы TAR.GZ по начальной двоичной последовательности байтов:
HEX-СИГНАТУРА (СМЕЩЕНИЕ 0):
1F 8B 08ПРЕДСТАВЛЕНИЕ ASCII: ..\x08
Стандартизация: POSIX.1 ustar (с оберткой сжатия gzip RFC 1952)
Технические спецификации
| Архитектура контейнера | Поток архива POSIX ustar / GNU tar, завернутый в контейнер сжатия Gzip RFC 1952 |
| Сжатие | Двухэтапная упаковка: сериализация TAR с последующим сжатием DEFLATE |
| Порядок байтов (Endianness) | Оболочка gzip с прямым порядком байтов (Little-Endian), содержащая восьмеричные блоки tar POSIX |
| Цветовые пространства | Н/Д (Архивный контейнер) |
| Каналы и структура | Многофайловые деревья каталогов Unix, символические ссылки, права владения файлами и биты разрешений |
| Максимальные размеры | Неограниченный размер потокового архива |
| Прозрачность | 100% побитово точное сохранение структур файловой системы и данных без потерь |
| Потоковая передача и прогрессивная загрузка | Сквозная потоковая передача: одновременное распаковывание и извлечение за один проход |
Техническая матрица сравнения: TAR.GZ с конкурентами
| Технический атрибут | TAR.GZ (Текущий) | ZIP | 7Z | TAR.BZ2 |
|---|---|---|---|---|
| Права Unix | 100% нативное сохранение POSIX | Ограниченно / часто теряются | Сохраняются базовые атрибуты | 100% нативное сохранение POSIX |
| Степень сжатия | Умеренная (Gzip DEFLATE) | Умеренная (ZIP DEFLATE) | Очень высокая (LZMA2) | Высокая (Bzip2 BWT) |
| Скорость распаковки | Высокая скорость (~300 МБ/с) | Высокая скорость (~300 МБ/с) | Умеренная (~100 МБ/с) | Низкая (~40 МБ/с) |
| Стандарт экосистемы Linux | Универсальный стандарт по умолчанию для открытого ПО | Стандарт для пользовательских ПК по умолчанию | Любимец энтузиастов Windows | Устаревшие исходные коды Linux |
Распространенные сценарии повреждения и руководство по восстановлению в HEX
Командная строка сообщает: 'gzip: stdin: invalid compressed data--format violated'.
Первопричина: Поврежденные байты в оболочке Gzip или прерванная загрузка.
Восстановление: Попробуйте частичное восстановление с помощью File2File.app Archive Extractor или команды 'tar -izxf broken.tar.gz'.
Анализ безопасности и векторы атак на парсер
Архивы TAR.GZ сочетают в себе риски как бомб сжатия, так и атак с обходом каталогов при небрежном извлечении.
Известные векторы атак
- Увеличение объема в стиле ZIP-бомбы, когда крошечный файл .tar.gz разворачивается в терабайты нулей.
- Обход каталогов (например, '../../root/.ssh/authorized_keys') с перезаписью привилегированных файлов.
- Создание вредоносных узлов устройств во время извлечения с правами root.
Лучшие практики защиты: Извлекайте архивы от имени непривилегированных пользователей и проверяйте все целевые пути файлов на предмет обхода каталогов.
История происхождения и ключевые этапы
Ключевые преимущества и плюсы
- Бесспорный стандарт для релизов исходного кода с открытым исходным кодом, пакетов Linux и слоев контейнеров Docker.
- Сочетает в себе полное сохранение разрешений POSIX и символических ссылок с надежным и быстрым сжатием Gzip.
- Полная поддержка потоковой передачи: может загружаться, распаковываться и извлекаться через сетевые каналы без записи временных файлов на диск.
Технические ограничения и минусы
- Извлечение одного файла требует распаковки всего архива вплоть до местоположения этого файла.
- Более низкая степень сжатия по сравнению с современными альтернативами, такими как .tar.xz или .tar.zst.
- В старых системах Windows менее удобен, чем широко поддерживаемый формат ZIP.
Интересные технические факты
- В системах MS-DOS с ограничениями длины имен файлов 8.3 расширение '.tar.gz' было сокращено до '.tgz'.
- При каждом запуске команды «npm install» npm незаметно загружает и распаковывает пакеты .tgz (tar.gz).
- Пользователи Linux хорошо помнят мнемоническое правило для извлечения файла tar.gz: 'eXtract Ze File': tar -xzf file.tar.gz.
Часто задаваемые технические вопросы
В чем разница между .tar.gz и .zip?
.zip сжимает каждый файл индивидуально и имеет центральный каталог в конце. .tar.gz сначала объединяет все файлы в единый поток, сохраняя все разрешения Linux и символические ссылки.
Является ли .tgz тем же самым, что и .tar.gz?
Да. .tgz: это просто сокращенное 3-буквенное расширение файла для .tar.gz, изначально созданное для операционных систем с короткими ограничениями имен файлов 8.3, таких как DOS.
Как извлечь файл .tar.gz в Windows?
Вы можете извлекать файлы .tar.gz прямо в веб-браузере с помощью File2File.app без установки WinRAR или 7-Zip.