Что такое формат файла GZ?
Файл .gz - это сжатый файл, созданный инструментом GNU zip (gzip). Формат был разработан Жаном-Лу Гайи и Марком Адлером для проекта GNU с целью создания свободной от патентов замены старому методу сжатия .Z, использовавшемуся в системах UNIX. Файлы .gz хранят полезные метаданные в своем заголовке - имя исходного файла и метку времени изменения, что может быть полезно, если файл был переименован в процессе сжатия.
Где используется сжатие .gz?
Файлы в формате .gz часто встречаются в пакетах программного обеспечения и установщиках для операционных систем на базе Unix. Помимо установщиков, формат .gz также часто используется для сжатия текстовых ресурсов, таких как HTML, CSS и JavaScript на веб-серверах, что способствует более быстрой загрузке веб-страниц. Тем не менее, этот метод сжатия также используется для обычного архивирования данных, поэтому файлы .gz могут встретиться пользователям Windows и macOS.
Подробности о сжатии .gz
Метод сжатия .gz имеет одну важную особенность: архив может содержать только один файл. Стандартный способ обойти это ограничение - сначала объединить несколько файлов с помощью инструмента архивирования tar, а затем сжать результат, получив файл .tar.gz или .tgz. Этот двухэтапный подход является стандартом де-факто для распространения исходного кода программного обеспечения в Linux и macOS.
Безопасность и защита
РИСК: LOWФормат gzip является открытым и безопасным, а .gz - это просто сжатые данные, которые не могут запускаться сами по себе. Применяются обычные меры предосторожности для архивов: .gz/.tar.gz из ненадежного источника может содержать исполняемые файлы или скрипты, которые обнаруживаются только после извлечения, поэтому сканируйте содержимое перед запуском. Два технических замечания: чрезвычайно маленькие файлы .gz могут расширяться до огромных размеров («архивные бомбы») - опасайтесь подозрительно крошечных архивов; а .tar.gz может содержать пути с «../» (риск обхода пути или «tar slip») - современные распаковщики защищают от этого, но извлекайте ненадежные архивы в пустую папку.
Детали формата
в двух словахПрограммы, открывающие файлы GZ
gunzip file.gz. Архив tarball: tar -xzf file.tar.gz. Предустановлено практически в каждой системе Linux/Unix. Технические подробности
глубокая спецификация| Магические байты | `1F 8B` со смещением 0, за которыми следует `08` (байт метода DEFLATE) |
| Алгоритм сжатия | DEFLATE (RFC 1951); байт метода `08` - единственное значение, используемое на практике |
| Тип MIME | `application/gzip` |
| Файлов в потоке | Один - `.gz` сжимает один входной файл на поток |
| Метаданные заголовка | Хранит исходное имя файла (флаг FNAME) и метку времени последнего изменения исходного файла |
| Проверка целостности | Контрольная сумма CRC-32 несжатых данных, записанная в 8-байтовом трейлере и проверяемая при извлечении |
| Поле размера | 4-байтовое поле ISIZE в трейлере содержит исходный несжатый размер по модулю 2³² |
| Уровни сжатия | Девять уровней (1 = самый быстрый/наименьшее сжатие, 9 = самый медленный/лучшее сжатие); по умолчанию уровень 6 |
| Кодирование контента HTTP | Используется как Content-Encoding `gzip` в HTTP/1.1 для сжатия веб-ответов на лету |
| Конкатенация потоков | Несколько потоков `.gz` могут быть объединены; `gunzip` распаковывает их как один непрерывный вывод |
| Идентификация ОС | 1-байтовое поле ОС в заголовке (например, `03` = Unix, `00` = FAT) идентифицирует исходную систему |
| Флаги заголовка | Байт флагов управляет необязательными полями: FNAME, FCOMMENT, FEXTRA и FHCRC (проверка CRC-16 заголовка) |
| Шифрование | Отсутствует - формат не имеет встроенного механизма защиты паролем или шифрования |
| Соглашение о нескольких файлах | Сначала используйте `tar` для объединения файлов, затем сжатие: `tar czf archive.tar.gz files/` создает архив .tar.gz |
| Потоковая архитектура | Сжимает за один проход вперед; не требует знания общего размера входных данных перед началом |
| Выпущен | 1992 (gzip 1.0); format standardized as RFC 1952 (1996) |
| Открыть стандартное | Да · без роялти |
| Спецификация | www.rfc-editor.org |
Конвертации GZ
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах GZ.
Часто задаваемые вопросы
Как открыть файл GZ?
gunzip file.gz или tar -xzf file.tar.gz для архива tarball.В чем разница между .gz и .tar.gz?
Как открыть файл GZ в Windows?
Можно ли создать файл GZ бесплатно?
gzip/tar встроены в систему.Почему в моем GZ-файле только один файл, хотя я ожидал много?
Как извлечь .tar.gz в один шаг?
tar -xzf archive.tar.gz. В графическом интерфейсе PeaZip, Keka, Ark и File Roller распаковывают оба слоя (gzip и tar) за одну операцию извлечения.