Формат ZIP и распаковка архивов¶
ZIP — распространённый формат сжатия файлов и архиватор, созданный в 1989 году программой Phil Katz PKZIP и ставший де-факто стандартом обмена сжатыми данными в интернете. Архив ZIP представляет собой один файл, внутри которого могут храниться файлы и папки в исходном виде или в сжатом виде (алгоритм DEFLATE). Распаковка архива — это извлечение его содержимого в обычные файлы и каталоги на диске компьютера.
¶Структура архива ZIP
Архив ZIP состоит из локальных заголовков файлов, собственно сжатых данных, каталога центрального управления и концевой записи. Благодаря центральному каталогу архив можно читать даже при повреждении начала файла. Поддерживаются:
- сжатие методами Store (без сжатия) и DEFLATE (сжатие Лемпеля-Зива);
- шифрование паролем (устаревший ZipCrypto или более стойкий AES);
- многотомные архивы, разделённые на части;
- хранение метаданных: даты, атрибуты, права доступа в Unix-системах.
Файлы с расширением .zip открываются штатными средствами Windows, macOS и Linux без установки дополнительного ПО.
¶Способы распаковки в Windows
¶Проводник Windows
Начиная с Windows 7 встроенный Проводник умеет открывать ZIP-архивы как обычную папку. Достаточно дважды щёлкнуть по файлу — его содержимое отобразится в окне. Для извлечения:
- Открыть архив двойным щелчком.
- Выделить все файлы (Ctrl+A) или нужные.
- Нажать кнопку «Извлечь» на вкладке «Архив» в строке меню.
- Указать папку назначения и подтвердить.
Альтернатива: правый щелчок по файлу .zip → «Извлечь всё…» → выбор каталога → «Извлечь». Windows предложит создать папку с именем архива и откроет её по завершении.
¶Командная строка и PowerShell
Встроенный утилитой tar (начиная с Windows 10 build 17063) можно распаковать архив:
`` tar -xf archive.zip -C C:\Users\Имя\Документы ``
Флаг -x означает извлечение, -f указывает имя файла, -C — целевой каталог. В PowerShell используется команда Expand-Archive:
`` Expand-Archive -Path archive.zip -DestinationPath D:\Данные -Force ``
Параметр -Force перезаписывает существующие файлы.
¶Сторонние программы
Для работы с защищёнными паролем архивами и для более тонкой настройки используются сторонние архиваторы:
| Программа | Особенности |
|---|---|
| 7-Zip | Бесплатная, открытый код, поддержка множества форматов, сильное шифрование AES-256 |
| WinRAR | Коммерческая, поддержка RAR и ZIP, восстановление повреждённых архивов |
| PeaZip | Бесплатная, кроссплатформенная, открытый код |
| Bandizip | Бесплатная для личного использования, быстрое извлечение |
В этих программах распаковка выполняется через контекстное меню: правый щелчок по архиву → «Извлечь в текущую папку» или «Извлечь в <имя_архива>\».
¶Распаковка в macOS и Linux
¶macOS
В macOS двойной щелчок по файлу .zip автоматически распаковывает его содержимое в ту же папку с помощью встроенного архиватора Archive Utility. Для выбора другого каталога или дополнительных опций используется приложение «Архивная утилита» (находится в папке «Служебные программы»).
В Terminal распаковка выполняется утилитой unzip:
`` unzip archive.zip -d ~/Документы/Распакованное ``
¶Linux
В большинстве дистрибутивов Linux файловые менеджеры (Nautilus, Dolphin, Thunar) распаковывают ZIP по правому щелчку: «Распаковать здесь» или «Извлечь в…». В терминале используется та же команда unzip:
`` unzip archive.zip unzip archive.zip -d /home/user/целевая_папка ``
Полезные ключи: -l — просмотреть содержимое без распаковки, -o — перезаписать без подтверждения, -P пароль — указать пароль.
¶Типичные проблемы и решения
- Архив защищён паролем. Без пароля извлечь содержимое невозможно; программы предложат ввести его в диалоговом окне.
- Ошибка «Повреждённый архив». 7-Zip и WinRAR умеют восстанавливать часть данных; в 7-Zip это делается через меню «Файл» → «Тестирование» и последующее извлечение с игнорированием ошибок.
- Неподдерживаемый формат. Иногда файл с расширением
.zipна самом деле является RAR, 7z или другим форматом — достаточно открыть его соответствующим архиватором. - Кодировка имен файлов. Архивы, созданные в Windows, могут содержать имена в кодировке CP866 или CP1251, что приводит к «кракозябрам» в Linux. В 7-Zip это решается параметром кодировки при извлечении.
- Ограничение размера. Классический формат ZIP поддерживает архивы объёмом до 4 ГБ и до 65 535 элементов; для больших объёмов используется ZIP64.
¶Историческая справка
Формат ZIP появился 15 февраля 1989 года как конкурент архиватора ARC. Автор — Фил Кац, основатель компании PKWARE. Название происходит от фразы «zip file» (файл «с молнией»), подразумевавшей скорость работы. В 1993 году алгоритм сжатия DEFLATE был лицензирован и стал основой формата, а в 2000-е годы ZIP64 снял ограничение на размер. Сегодня ZIP поддерживается практически всеми операционными системами и является наиболее универсальным форматом архивации.
