Архів Tar Gzip (.tar.gz)
POSIX.1 СтандартTar Gzip (.tar.gz, також відомий як .tgz) - це стандартний формат розповсюдження програмного забезпечення та упакування архівів у світі Linux і відкритих джерел, що поєднує нативне для Unix упакування TAR із універсальним стисненням Gzip.
Аналіз та метадані
Операційні системи та аналізатори файлів ідентифікують файли TAR.GZ, перевіряючи початкову послідовність бінарних байтів:
Сигнатура заголовка на байтовому рівні (Magic Bytes)
Операційні системи та аналізатори файлів ідентифікують файли TAR.GZ, перевіряючи початкову послідовність бінарних байтів:
ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):
1F 8B 08ASCII-УЯВЛЕННЯ: ..\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 | 100% нативне збереження POSIX | Обмежені / часто втрачаються | Зберігаються базові дозволи | 100% нативне збереження POSIX |
| Коефіцієнт стиснення | Помірний (Gzip DEFLATE) | Помірний (ZIP DEFLATE) | Дуже високий (LZMA2) | Високий (Bzip2 BWT) |
| Швидкість декомпресії | Швидка (~300 МБ/с) | Швидка (~300 МБ/с) | Помірна (~100 МБ/с) | Повільна (~40 МБ/с) |
| Стандарт екосистеми Linux | Універсальний стандарт для відкритих джерел | Стандарт для споживчих десктопів | Улюбленець ентузіастів Windows | Застарілі вихідні коди Linux |
Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі
У командному рядку з'являється повідомлення '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.