Что такое формат файла CPGZ?
Расширение .cpgz помечает сжатый архив CPIO (Copy In, Copy Out), использующий алгоритм сжатия Gzip как внешний слой. Формат CPGZ не накладывает никаких ограничений на тип хранимых данных - он может содержать файлы приложений, установщики, документы или фотографии. Создание .cpgz включает два последовательных этапа:
- Создание несжатого архива CPIO - создает единый поток файлов и каталогов, каждый из которых предваряется секцией заголовка, содержащей метаданные файла.
- Сжатие с помощью GZIP - метод без потерь на основе алгоритма DEFLATE, который уменьшает общий размер архива.
Поскольку сжатые файлы Gzip обычно имеют суффикс .gz, объединенное расширение .cpgz следует той же двухчастной схеме именования, что и .tgz (сжатый архив TAR с помощью Gzip). Файл .cpgz начинается со стандартных magic-байт gzip 1F 8B 08 по смещению 0; после распаковки внутренний поток представляет собой архив CPIO, чаще всего в формате SVR4 newc (magic 070701).
Этот формат наиболее тесно связан с macOS, где утилита командной строки ditto и Archive Utility могут как создавать, так и извлекать файлы .cpgz. В Linux и Unix эквивалентная цепочка команд - gunzip с конвейером в cpio, или один вызов с использованием bsdtar.
Распространенный реальный сценарий - неожиданное появление .cpgz как артефакта сбоя: когда macOS Archive Utility не может полностью извлечь скачанный .zip - из-за того, что файл обрезан, поврежден или структурирован так, что утилита неправильно с ним работает, - она может переупаковать частичный результат в .cpgz. Повторное двойное нажатие на файл создает цикл: каждая попытка чередуется между .zip и .cpgz, так и не извлекая содержимое. Решение - получить исходный архив заново или использовать сторонний инструмент, например The Unarchiver или Keka.
Сам CPIO появился в эпоху Unix 1970-х годов, когда магнитные ленты были основным средством архивирования. Различные варианты CPIO хранят заголовки файлов в двоичном или текстовом формате ASCII, а максимальный размер файла варьируется от 2 ГБ в старых двоичных вариантах до 4 ГБ в SVR4 newc. Пара .cpgz не является формальным стандартом, а практическим соглашением, популяризированным инструментами macOS.
Безопасность и защита
РИСК: LOWСам формат безопасен - это просто сжатые данные архива, которые не могут выполняться самостоятельно. Применяются обычные меры предосторожности для архивов: .cpgz из ненадежного источника может содержать исполняемые файлы или скрипты, которые становятся видимыми только после распаковки, поэтому перед запуском чего-либо сканируйте содержимое, а ненадежные архивы распаковывайте в пустую папку (cpio может хранить абсолютные или пути '../', что создает риск обхода путей). Самая частая «проблема» с .cpgz - не вредоносное ПО, а повреждение: неожиданный .cpgz из загрузки обычно означает, что .zip пришел поврежденным - скачайте его заново, а не пытайтесь его исправить.
Детали формата
в двух словахПрограммы, открывающие файлы CPGZ
cpio -idmv). Предустановлен на большинстве систем. Технические подробности
глубокая спецификация| MIME-тип | application/gzip (основной); также application/x-cpio и application/octet-stream |
| Magic-байты | 1F 8B 08 по смещению 0 (внешний слой gzip); после распаковки внутренний поток cpio открывается с 070701 (SVR4 newc) |
| Внешнее сжатие | Алгоритм DEFLATE, обернутый в gzip-рамку (RFC 1952) |
| Формат внутреннего архива | CPIO - чаще всего в формате SVR4 newc (magic 070701); также переносимый ASCII (magic 070707) |
| Кодирование файла | Двоичный внешний поток; заголовки записей newc cpio используют фиксированные поля ASCII-hex, что делает их независимыми от порядка байтов |
| Проверки целостности | Внизу gzip хранится CRC-32 и 4-байтовый ISIZE (не сжатый размер mod 2³²); вариант 'crc' cpio добавляет контрольные суммы CRC-32 для каждого файла |
| Шифрование | Отсутствует - ни gzip, ни cpio не предоставляют встроенного слоя шифрования; файлы должны быть зашифрованы отдельно, если требуется конфиденциальность |
| Макс. размер файла на запись | ~4 ГБ в SVR4 newc (32-битное поле размера файла); старый двоичный формат cpio ограничен ~2 ГБ |
| Структура архива | Линейный последовательный поток без центрального каталога; все записи должны читаться с начала потока |
| Заголовок записи cpio (newc) | 110-байтовый фиксированный ASCII-заголовок на запись, за которым следует нуль-терминированное имя файла и данные файла, выровненные по границам 4 байт |
| Связанные платформы | macOS (основная); Linux; Unix |
| Основной инструмент создания (macOS) | утилита командной строки ditto; Archive Utility также создает .cpgz как артефакт сбоя, когда .zip не может быть полностью извлечен |
| Макс. количество записей | Нет фиксированного лимита; cpio последовательно обрабатывает записи без ограничения на запись каталога |
| Потоковая распаковка | Да - последовательный дизайн позволяет распаковку на основе конвейера (например, gunzip -c file.cpgz | cpio -idmv) без загрузки каталога в память |
| Выпущен | cpio: 1970s Unix; gzip: 1992. The .cpgz pairing is a macOS convention. |
| Последняя версия | N/A (relies on stable gzip RFC 1952 + POSIX cpio formats) |
| Открыть стандартное | Да · без роялти |
| Спецификация | www.rfc-editor.org |
Конвертации CPGZ
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах CPGZ.
Часто задаваемые вопросы
Что такое файл CPGZ?
Почему мой ZIP превратился в CPGZ на моем Mac?
Мой .zip и .cpgz постоянно переключаются - как это исправить?
Как открыть файл CPGZ?
ditto -x -k file.cpgz dest. В Linux: gunzip -c file.cpgz | cpio -idv. В Windows используйте бесплатный 7-Zip или PeaZip.