Архив 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 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.