Архів Tar Gzip (.tar.gz)
POSIX.1 СтандартTar Gzip (.tar.gz, також відомий як .tgz): це стандартний формат розповсюдження програмного забезпечення та упакування архівів у світі Linux і відкритих джерел, що поєднує нативне для Unix упакування TAR із універсальним стисненням Gzip.
Аналіз та метадані
Операційні системи та аналізатори файлів ідентифікують файли TAR.GZ, перевіряючи початкову послідовність бінарних байтів:
Сигнатура заголовка на байтовому рівні (Magic Bytes)
Операційні системи та аналізатори файлів ідентифікують файли TAR.GZ, перевіряючи початкову послідовність бінарних байтів:
ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 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, що охоплює вісімкові блоки POSIX tar |
| Колірні простори | Не застосовується (Архівний контейнер) |
| Канали та структура | Багатофайлові дерева каталогів Unix, символічні посилання, права власності на файли та біти дозволів |
| Максимальні розміри | Необмежений розмір потокового архіву |
| Прозорість | 100% побітово точне збереження структур файлової системи та даних без втрат |
| Потокове та прогресивне завантаження | Наскрізний потоковий конвеєр: декомпресія та витягування одночасно за один прохід |
Технічна матриця порівняння: TAR.GZ проти конкурентів
| Технічний атрибут | TAR.GZ (Поточний) | ZIP | 7Z | TAR.BZ2 |
|---|---|---|---|---|
| Дозволи Unix | Зберігає метадані POSIX, які підтримують архів і засіб розпакування | Обмежені / часто втрачаються | Зберігаються базові дозволи | Вибрані метадані POSIX, які підтримує засіб розпакування |
| Коефіцієнт стиснення | Помірний (Gzip DEFLATE) | Помірний (ZIP DEFLATE) | Дуже високий (LZMA2) | Високий (Bzip2 BWT) |
| Швидкість декомпресії | Швидка (~300 МБ/с) | Швидка (~300 МБ/с) | Помірна (~100 МБ/с) | Повільна (~40 МБ/с) |
| Стандарт екосистеми Linux | Універсальний стандарт із відкритим кодом | Стандарт для домашніх комп'ютерів | Фаворит серед ентузіастів Windows | Застарілі випуски вихідного коду Linux |
Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі
У командному рядку з'являється повідомлення '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).
Рекомендації щодо захисту: Розпаковуйте архіви від імені непривілейованих користувачів та перевіряйте всі цільові шляхи файлів на предмет обходу каталогів.
Історичне походження та віхи
Основні переваги
- Проєкти програмного забезпечення часто публікують архіви вихідного коду у форматі .tar.gz, оскільки TAR групує дерево каталогів, а Gzip стискає потік.
- .tar.gz може зберігати дозволи та символічні посилання у шарі TAR. Відновлення залежить від засобу розпакування й цільової ОС, тож після розпакування на іншій платформі перевірте дозволи.
- Повністю потоковий: можна завантажувати, розпаковувати та витягувати через мережеві канали без запису тимчасових файлів на диск.
Технічні обмеження та недоліки
- Витягування одного файлу вимагає розпакування всього архіву до місця розташування цього файлу.
- Нижчий коефіцієнт стиснення порівняно з сучасними альтернативами, такими як .tar.xz або .tar.zst.
- У старих системах Windows ним менш зручно користуватися, ніж широко підтримуваним форматом ZIP.
Цікаві технічні факти
- У системах MS-DOS з обмеженням довжини імені файлу 8.3 '.tar.gz' скорочували до '.tgz'.
- Щоразу, коли ви запускаєте 'npm install', npm завантажує та витягує пакети .tgz (tar.gz) у фоновому режимі.
- Користувачі Linux часто згадують мнемоніку 'eXtract Ze File' для команди розпакування tar.gz: tar -xzf file.tar.gz.
Поширені технічні запитання
Яка різниця між .tar.gz і .zip?
.zip зберігає файли з центральним каталогом, а .tar.gz стискає потік TAR за допомогою Gzip. Збереження метаданих залежить від архіву та налаштувань розпакування.
Чи є .tgz тим самим, що й .tar.gz?
Так. .tgz: це скорочена трилітерна версія розширення .tar.gz, створена для операційних систем, у яких діє обмеження на довжину імен файлів формату 8.3, наприклад DOS.
Як розпакувати файл .tar.gz у Windows?
Ви можете витягувати файли .tar.gz безпосередньо у своєму веб-браузері за допомогою File2File.app без необхідності встановлювати WinRAR чи 7-Zip.