Открыть сервисСервис

Формат архива TAR.GZ

TAR.GZ — это расширение файла, обозначающее архив TAR, сжатый с помощью алгоритма gzip. Формат широко используется в операционных системах семейства Unix и Linux для упаковки наборов файлов и каталогов в единый файл с одновременным сжатием. Расширение .tar.gz (или сокращённо .tgz) является одним из наиболее распространённых способов дистрибуции программного обеспечения и резервного копирования в Linux-системах.

Структура формата

Формат TAR.GZ представляет собой комбинацию двух независимых технологий:

  • TAR (tape archive) — утилита и формат архивации, объединяющая множество файлов и каталогов в один поток данных (архив). Сам по себе TAR не сжимает данные, а лишь упаковывает их, сохраняя структуру каталогов, права доступа, владельцев и метки времени.
  • gzip (GNU zip) — программа сжатия данных, основанная на алгоритме DEFLATE, сочетающем алгоритмы LZ77 и каноническое кодирование Хаффмана. gzip заменяет устаревший стандарт сжатия .Z из пакета compress.

Таким образом, .tar.gz — это архив TAR, данные внутри которого сжаты алгоритмом gzip. Существует также альтернативный формат .tar.bz2, использующий алгоритм Bzip2, и более новый .tar.xz, основанный на LZMA/LZMA2, обеспечивающий более высокую степень сжатия, но требующий больше времени на обработку.

История

Утилита tar появилась в 1979 году в Unix-системе Unix V7 и изначально была предназначена для создания резервных копий на магнитные ленты (отсюда и название — tape archive). Формат tar позволял сохранять метаданные файловой системы, что было критически важно при восстановлении данных.

Программа gzip была создана Жан-люпом Гейлом (Jean-loup Gailly) и Марком Адлером (Mark Adler) в 1992 году как замена утилите compress. gzip стал стандартом сжатия в GNU-проекте и быстро вытеснил предшественников благодаря открытому алгоритму и лучшему коэффициенту сжатия.

Сочетание tar и gzip в виде единого расширения .tar.gz сформировалось в середине 1990-х годов и стало де-факто стандартом распространения исходного кода программ в Unix-мире.

Команды работы с TAR.GZ

В Linux и других Unix-подобных системах для работы с архивами TAR.GZ используются следующие команды:

ДействиеКоманда
Создание архиваtar -czvf archive.tar.gz /путь/к/файлам
Распаковка архиваtar -xzvf archive.tar.gz
Просмотр содержимогоtar -tzvf archive.tar.gz
Извлечение в указанный каталогtar -xzvf archive.tar.gz -C /каталог

Параметры команды tar:

  • -c — создание нового архива;
  • -x — извлечение файлов из архива;
  • -z — сжатие/распаковка с помощью gzip;
  • -v — подробный вывод (verbose);
  • -f — указание имени файла архива.

Применение

TAR.GZ применяется в нескольких основных областях:

Дистрибуция программного обеспечения. Многие проекты с открытым исходным кодом распространяют свои релизы в виде .tar.gz-архивов с исходным кодом. Это позволяет пользователю скомпилировать программу под свою систему.

Резервное копирование. tar с флагом -g или в связке с утилитами типа rsnapshot позволяет создавать инкрементальные бэкапы в формате tar.gz.

Передача данных. Архивы tar.gz часто используются для передачи наборов файлов по сети или размещения на серверах, так как один файл проще копировать и хранить, чем множество отдельных файлов с сохранением структуры каталогов.

Пакетные системы. В Debian и Ubuntu пакеты .deb представляют собой архивы, сжатые алгоритмами gzip или xz, что роднит их по структуре с tar.gz.

TAR.GZ и ZIP: отличия

Основные отличия формата .tar.gz от .zip:

  • ZIP объединяет архивацию и сжатие в одном формате, тогда как TAR.GZ — это комбинация двух отдельных утилит.
  • ZIP сжимает каждый файл отдельно, TAR.GZ сжимает поток целиком, что обычно даёт лучший коэффициент сжатия.
  • TAR.GZ полностью сохраняет Unix-специфичные атрибуты файлов (права доступа, симлинки, владельцы), ZIP изначально был разработан для DOS/Windows и поддерживает эти атрибуты лишь частично.
  • ZIP поддерживает многотомность (разбиение на несколько файлов) из коробки; для tar это требует дополнительных инструментов.

Исторические источники

  • Гейл Ж.-лю, Адлер М. RFC 1952: GZIP file format specification version 4.3, 1996.
  • GNU tar Manual.
  • Pike R., Thompson M. Hello, Unix. UNIX/HOIST Project, 1990.
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru