Архив Tar Gzip (.tar.gz)
POSIX.1 СтандартTar Gzip (.tar.gz, известен и като .tgz) е стандартният формат за софтуерна дистрибуция и пакетиране на архиви в света на Linux и софтуера с отворен код, съчетаващ нативното за Unix TAR опаковане с универсалната Gzip компресия.
Проверка и метаданни
Операционните системи и файловите анализатори идентифицират TAR.GZ файлове чрез проверка на началната двоична байтова последователност:
Байтов подпис на заглавката (сигнатурни байтове)
Операционните системи и файловите анализатори идентифицират TAR.GZ файлове чрез проверка на началната двоична байтова последователност:
HEX ПОДПИС (ОФСЕТ 0):
1F 8B 08ASCII ПРЕДСТАВЯНЕ: ..\x08
Стандартизация: POSIX.1 ustar (RFC 1952, обвит в gzip)
Технически спецификации
| Контейнерна архитектура | Архивен поток POSIX ustar / GNU tar, обвит в контейнер за компресия Gzip по RFC 1952 |
| Компресия | Двустепенно пакетиране: сериализация в TAR, последвана от компресия DEFLATE |
| Поредност на байтовете (Endianness) | Обвивката Gzip използва ред от младшия към старшия байт (Little-Endian) около осемеричните блокове на POSIX tar. |
| Цветови пространства | N/A (Archive Container) |
| Канали и структура | Unix директории с множество файлове, символни връзки, собственост на файловете и битове за права |
| Максимални размери | Размер на поточния архив без фиксирано ограничение |
| Прозрачност | 100% bit-exact lossless preservation of filesystem structures and data |
| Поточно предаване и прогресивно зареждане | Поточно обработване по конвейер от край до край: декомпресиране и извличане едновременно с един проход |
Техническа сравнителна матрица: TAR.GZ спрямо конкуренти
| Технически атрибут | TAR.GZ (Текущ) | ZIP | 7Z | TAR.BZ2 |
|---|---|---|---|---|
| Unix разрешения | 100% запазване на POSIX разрешенията | Ограничено / често се губи | Запазени основни атрибути | 100% запазване на POSIX разрешенията |
| Коефициент на компресия | Умерен (Gzip DEFLATE) | Умерен (ZIP DEFLATE) | Много висок (LZMA2) | Висок (Bzip2 BWT) |
| Скорост на декомпресия | Бърза (~300 MB/s) | Бърза (~300 MB/s) | Умерена (~100 MB/s) | Бавна (~40 MB/s) |
| Стандарт в Linux екосистемата | Универсален формат по подразбиране в света на софтуера с отворен код | Формат по подразбиране за потребителските настолни компютри | Любимец на Windows ентусиастите | Изходни версии за стария Linux |
Често срещани видове повреди и ръководство за възстановяване на шестнадесетични данни
Командният ред съобщава 'gzip: stdin: invalid compressed data--format violated'.
Първопричина: Повредени байтове в Gzip обвивката или прекъснато изтегляне.
Възстановяване: Опитайте частично възстановяване с помощта на File2File.app Archive Extractor или 'tar -izxf broken.tar.gz'.
Анализ на сигурността и вектори на атака към парсера
Архивите TAR.GZ съчетават рисковете както от компресионни бомби, така и от атаки чрез обхождане на директории (directory traversal), ако бъдат извлечени небрежно.
Известни вектори на атака
- Разгръщане като при ZIP бомба, при което малък .tar.gz файл се разширява до терабайти нули.
- Обхождане на директории (напр. '../../root/.ssh/authorized_keys'), презаписващо привилегировани файлове.
- Създаване на злонамерени възли на устройства по време на извличането като root.
Най-добри практики за защита: Извличайте архиви като непривилегировани потребители и проверявайте всички целеви файлови пътища за атаки чрез обхождане на директории (directory traversal).
Исторически произход и етапи
Основни предимства
- Безспорният стандарт за издания на изходен код с отворен код, 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.