Гид по технологиям

Как zip-овать папку в Linux

6 min read Linux Обновлено 13 Apr 2026
Как zip-овать папку в Linux — руководство
Как zip-овать папку в Linux — руководство

Архив ZIP поверх папки с логотипом Linux-пингвина

Введение

ZIP — популярный формат архивации, который помогает упорядочить файлы и экономить место при хранении или передаче. В Linux упаковка папки в .zip снижает объём данных и сетевой трафик. Этот материал объясняет, как установить zip, какие параметры чаще всего применяются и какие случаи требуют альтернатив.

Краткое определение: zip — утилита и формат архивации, объединяющий файлы и опционально сжимающий их для уменьшения размера.

Установка zip на Linux

Большинство дистрибутивов не включают zip по умолчанию. Установите его через системный менеджер пакетов.

  • На Ubuntu и Debian:
sudo apt install zip
  • На CentOS и Fedora (yum или dnf):
sudo yum install zip
# или
sudo dnf install zip
  • На Arch Linux и Manjaro:
sudo pacman -S zip
  • На openSUSE:
sudo zypper install zip

Важно: для работы с очень большими файлами убедитесь, что сборка zip поддерживает Zip64 (современные пакеты обычно поддерживают).

Как работает процесс архивирования

Когда вы запускаете zip, утилита сканирует указанные файлы и папки и последовательно добавляет элементы в архив. Если процесс сканирования занимает заметное время, zip может выводить сообщения о прогрессе (например, точки или строки с информацией). Если некоторые файлы не найдены — будет предупреждение, но обработка продолжится. В конце zip подведёт итог: сколько файлов обработано и сколько пропущено.

Важно знать:

  • zip хранит относительные пути в архиве, если вы запускаете команду из текущей директории. Чтобы сохранить пути относительно корня, используйте абсолютные пути.
  • Если файл слишком велик для сжатия или уже содержит сжатые данные (например, JPG или MP4), zip может поместить его в архив без дополнительного сжатия.

Базовый пример: упаковать папку в zip

Синтаксис для упаковки одной или нескольких папок:

zip -r outputfile.zip folder1 folder2 folder3
  • outputfile.zip — имя архива.
  • folder1, folder2 — пути (абсолютные или относительные).

Пример: создать temp.zip из папки /data

zip -r temp.zip /data

Проверка результата:

ls -l | grep .zip

Если размер файла слишком велик для сжатия, zip может сохранить его «как есть» — это нормальное поведение.

Уровни и методы сжатия

  • Числовые уровни: -0 (без сжатия) … -9 (максимальное сжатие). По умолчанию обычно -6.
zip -9 -r archivename.zip directory_name
  • Метод сжатия через флаг -Z. Пример с bzip2:
zip -r -Z bzip2 archivename.zip directory_name

Пояснение: более сильное сжатие (-9 или bzip2/xz) занимает больше процессорного времени; -0 быстрее, но без уменьшения размера.

Частые опции и паттерны

  • Исключить шаблоны:
zip -r archive.zip folder -x "*.tmp" "node_modules/*"
  • Шифрование (ZipCrypto, слабее, но широко поддерживается):
zip -r -e secret.zip folder

Замечание: встроенное шифрование zip (ZipCrypto) уязвимо. Для надёжного шифрования используйте 7z/openssl или tar + gpg.

  • Разбиение архива на части (split):
zip -r -s 64m bigarchive.zip folder

Это создаст разделённый архив с частями по 64 МБ.

  • Просмотр содержимого архива без извлечения:
unzip -l archive.zip
  • Извлечь архив в указанную директорию:
unzip archive.zip -d /path/to/destination

Использование find для формирования архива (файлы/папки с неизвестным путём)

Когда надо архивировать набор директорий, найденных динамически, используйте find с -exec или передачу списка в zip через stdin (с xargs или zip -@).

Пример: заархивировать все папки первого уровня в текущей директории:

find . -maxdepth 1 -type d -exec zip -r archive.zip {} +

Пример: архивировать только файлы с расширением .conf, найденные в дереве, с сохранением путей:

find /etc -type f -name "*.conf" -print0 | zip -@ -0 archive-confs.zip

(здесь -print0 и соответствующая поддержка xargs/zip позволяют корректно обрабатывать пробелы и спецсимволы).

Графический интерфейс: упаковать папки через файловый менеджер

Практически в любой окружении рабочего стола есть возможность создать .zip через GUI. Последовательность общая:

  1. Откройте файловый менеджер.
  2. Выделите одну или несколько папок (Ctrl+клик для множественного выбора).
  3. Правый клик → «Сжать» или «Create Archive» → в диалоге задайте имя и формат (ZIP, TAR.XZ, 7Z) → «Создать».

Сжать файлы через графический интерфейс Linux.jpg)

Создание архива в GUI файлового менеджера.jpg)

GUI удобен для одноразовых задач и для пользователей, предпочитающих визуальные операции. Терминал даёт максимум гибкости и автоматизации.

Советы и распространённые проблемы

Важно: перед упаковкой проверьте права доступа и владельцев файлов — при распаковке они могут восстановиться не так, как вы ожидаете, особенно при использовании разных дистрибутивов или пользователей.

  • Проблема: «archive.zip слишком большой» — проверьте поддержку Zip64 в вашей версии zip; при отсутствии поддержки используйте tar + gzip/xz или 7z.
  • Проблема: «файлы не добавляются» — убедитесь в правильных путях и правах чтения.
  • Проблема: «нужен сильный пароль» — zip -e использует устаревший метод; для сильного шифрования используйте 7z или tar+gpg.
  • Производительность: для многопроцессорной компрессии рассмотрите pigz (параллельный gzip) в связке с tar: tar cf - folder | pigz -9 > archive.tar.gz

Когда zip «не срабатывает» или не подходит:

  • Нужна максимальная степень сжатия для бинарных данных — tar.xz или 7z обычно эффективнее.
  • Требуется совместимость с Windows — zip остаётся хорошим выбором; для лучшей поддержки больших файлов убедитесь в использовании zip64.

Альтернативы и когда их выбрать

  • tar.gz (tar + gzip): стандартный выбор для Linux-пакетов, прост в потоковой обработке и совместим с конвейерами.
  • tar.xz: лучшее сжатие на CPU, но медленнее.
  • 7z (p7zip): часто даёт наилучшее сжатие и сильное шифрование.
  • rsync: для синхронизации и передачи отличий, а не упаковки.

Выбор: если нужна максимальная совместимость с Windows — ZIP. Если нужна скорость/максимальное сжатие или сильное шифрование — 7z/tar+xz/gpg.

Быстрый справочник (cheat sheet)

  • Создать архив папки: zip -r archive.zip folder
  • Максимальное сжатие: zip -9 -r archive.zip folder
  • Без сжатия (только упаковка): zip -0 -r archive.zip folder
  • Исключить шаблон: zip -r archive.zip folder -x “*.log”
  • Шифрование паролем: zip -r -e secret.zip folder
  • Разбить на части: zip -r -s 100m big.zip folder
  • Просмотр содержимого: unzip -l archive.zip
  • Извлечь: unzip archive.zip -d /path

Методология выбора формата и опций (мини-метод)

  1. Определите цель: совместимость, скорость, размер, шифрование.
  2. Если нужна совместимость с Windows — используйте ZIP.
  3. Если важен размер и вы контролируете среду — рассмотрите 7z или tar.xz.
  4. Для передачи по сети с ограничением на размер файла — используйте разбиение (-s) или потоковую передачу (tar | ssh).
  5. Для автоматизации используйте find/xargs или скрипты с проверкой ошибок.

Ролевые чеклисты

  • Пользователь (Desktop): проверить содержимое, выделить папки, правый клик → Сжать.
  • Разработчик: использовать zip -r с .gitignore-совместимыми -x для исключений, добавить в CI шаг создания архива.
  • Администратор: проверять поддержку Zip64, использовать tar+gpg или 7z для восстановления и безопасной архивации конфигураций.

Критерии приёмки (тестовые случаи)

  • Архив создан: команда завершается с кодом 0, файл .zip присутствует.
  • Структура сохранена: распаковка воспроизводит относительные пути и файлы.
  • Исключения применены: файлы, указанные в -x, отсутствуют в архиве.
  • Шифрование проверено: запрос пароля при распаковке и невозможность прочитать содержимое без пароля (с учётом ограничений ZipCrypto).

FAQ

Q: Поддерживает ли zip файлы больше 4 ГБ?

A: Современные сборки zip обычно поддерживают Zip64, который позволяет работать с файлами больше 4 ГБ. В старых версиях поддержки не было — проверяйте версию пакета.

Q: Как лучше шифровать архивы?

A: Для критически важного шифрования используйте 7z (AES-256) или tar + gpg. Встроенный zip -e использует ZipCrypto, который считается слабым.

Q: Можно ли распаковать zip на Windows?

A: Да. ZIP — один из самых совместимых форматов. Однако убедитесь в поддержке Zip64 и методе шифрования.

1-строчный глоссарий

  • Zip64 — расширение формата ZIP для поддержки больших архивов (>4 ГБ).
  • ZipCrypto — базовое шифрование, встроенное в многие реализации zip (не рекомендуется для сильной защиты).

Короткое резюме

  • zip — удобный и совместимый способ упаковать папки в Linux.
  • Используйте -r для рекурсивной архивации, -9 для максимального сжатия и -x для исключений.
  • Для больших объёмов, высокого уровня шифрования или максимального сжатия рассмотрите альтернативы (tar.xz, 7z).

Источник практических команд: системная утилита zip, мануалы (man zip).

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Подготовка к техническому собеседованию разработчика
Карьера

Подготовка к техническому собеседованию разработчика

Запуск мастера устранения неполадок в Windows
Windows

Запуск мастера устранения неполадок в Windows

Как создать мем: полное руководство
Социальные сети

Как создать мем: полное руководство

Как устранить BSOD 0x0000003B в Windows
Windows

Как устранить BSOD 0x0000003B в Windows

Clone Stamp в Photoshop — подробное руководство
Графика

Clone Stamp в Photoshop — подробное руководство

Синхронизация звука и видео в After Effects
Видео монтаж

Синхронизация звука и видео в After Effects