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

Как заархивировать папку в ZIP на Linux

6 min read Руководство Обновлено 15 Dec 2025
Как заархивировать папку в ZIP на Linux
Как заархивировать папку в ZIP на Linux

Молния-молния над папкой с логотипом Linux-пингвина

Зачем использовать ZIP в Linux

ZIP удобен, когда нужно быстро упаковать набор файлов для пересылки, резервного копирования или уменьшения потребления сетевого трафика. Формат совместим с большинством ОС и менеджеров архивов. ZIP поддерживает хранение структуры папок и, при необходимости, шифрование паролем (с ограничениями безопасности).

Важно: ZIP не всегда даёт максимальную степень сжатия для бинарных данных. Для максимальной компрессии используют tar + gzip/xz/brotli, но ZIP выигрывает в простоте и совместимости.

Установка zip на популярных дистрибутивах

Если утилита zip отсутствует, установите её через менеджер пакетов вашей системы.

На Ubuntu / Debian:

sudo apt update
sudo apt install zip -y

На CentOS / RHEL (yum) / Fedora (dnf):

sudo yum install zip
# или для Fedora
sudo dnf install zip

На Arch Linux / Manjaro:

sudo pacman -S zip

На openSUSE:

sudo zypper install zip

Примечание: в некоторых минимальных сборках zip нужно установить вручную. Если вы работаете в контейнере, убедитесь, что у вас есть права на установку.

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

Когда вы запускаете zip, утилита сканирует указанные пути и собирает список файлов. Если сканирование занимает заметное время, zip выведет: Scanning files. Во время добавления файлов в архив вы можете увидеть точки прогресса. Если zip не находит файл, он выдаст предупреждение, но продолжит обработку.

Если в конце процесса какие‑то файлы были пропущены, zip укажет число обработанных и пропущенных файлов.

Архивация папки из командной строки — базовый пример

Общий синтаксис:

zip -r имя_архива.zip путь_к_папке1 путь_к_папке2

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

zip -r temp.zip /data

Проверьте, что архив создан:

ls -l | grep \.zip$

Если файл слишком велик или уже сжат (например, видео, архивы), zip может «хранить» файл в архиве без повторного сжатия, чтобы не тратить CPU напрасно.

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

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

Вывод zip покажет процент сжатия для каждого файла.

Сжатие и бинарные файлы

Контент, уже сжатый (MP4, JPG, PNG, архивы), обычно не уменьшится. В таких случаях zip сохранит такой файл «как есть».

Расширенные опции: исключения, симлинки, права

  • Исключить файлы по шаблону: используйте -x
zip -r project.zip project -x "project/tmp/*" "project/*.log"
  • Обрабатывать символические ссылки как сами ссылки (не как цель): опция -y
zip -r -y links.zip folder_with_links
  • Шифрование (не самый безопасный способ): -e запросит пароль (не ставьте пароли в командной строке):
zip -r -e secure.zip secret_folder

Совет по безопасности: не используйте простое шифрование как единственный способ защиты конфиденциальных данных. Рассмотрите шифрование всего диска, GPG или другие проверенные механизмы.

Использование find для гибкой архивации

Если нужно собрать папки, найденные динамически, используйте find с -exec или xargs. Пример архивации всех подпапок в текущей директории (макс. глубина 1):

find . -maxdepth 1 -type d -mindepth 1 -exec zip -r {}.zip {} \;

Пример, когда нужно собрать только папки с определённым именем:

find /path -type d -name "backup_*" -exec zip -r {}.zip {} \;

Альтернатива (более быстрый вариант с использованием zip и xargs):

find . -maxdepth 1 -type d -print0 | xargs -0 -I{} zip -r {}.zip {}

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

Большинство окружений рабочего стола (GNOME, KDE, XFCE) имеют встроенную поддержку архивации.

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

Сжать файлы в GUI Linux.jpg?q=50&fit=crop&w=825&dpr=1.5)

Создание архива через графический интерфейс.jpg?q=50&fit=crop&w=825&dpr=1.5)

Совет: при архивировании больших наборов данных через GUI следите за свободным местом на диске и временем выполнения. GUI удобен для одноразовых задач, но скрипты дают повторяемость.

Проверка и распаковка архива

Проверить содержимое архива без распаковки:

unzip -l archivename.zip

Распаковать в текущую директорию:

unzip archivename.zip

Распаковать в указанную директорию:

unzip archivename.zip -d /path/to/destination

Проверить целостность архива:

unzip -t archivename.zip

Сравнение: ZIP vs tar.gz / tar.xz

КритерийZIPtar.gz / tar.xz
СовместимостьОчень высокаяВысокая в Unix-средах
Поддержка отдельных файловДаtar обычно сначала объединяет, затем сжимает
Максимальное сжатиеХорошее, но не всегда лучшеЧасто лучше (особенно xz)

| Поддержка потоковой передачи | Да | tar хорош для потоков (tar | gzip) |

Выбор зависит от совместимости и приоритетов: если важна совместимость с Windows — ZIP. Если важна максимальная степень сжатия на Linux — tar.xz.

Частые ошибки и как их избежать

  • Неправильно указанный путь: используйте абсолютные пути или кавычки для путей с пробелами.
  • Пробелы в имени файла: оборачивайте в кавычки или экранируйте.
  • Забыли exclude: используйте -x для исключений.
  • Хранили пароли в командной строке: этого не делайте — команды видны в истории и списке процессов.

Important: если архив создаётся от root, файлы в нём сохранят владельца root. При распаковке под обычным пользователем это может привести к проблемам с правами.

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

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

Пример теста: создать временную структуру папок, запустить zip с нужными флагами, распаковать в tmp и сравнить (diff -r) исходник и распакованное.

Чек‑лист для ролей

  • Системный администратор:

    • Установить zip в image/контейнер.
    • Проверить права и владельцев перед архивацией.
    • Скриптовать процесс архивации и ротацию бэкапов.
  • Разработчик:

    • Использовать exclude для временных и билд-файлов.
    • Добавлять контрольные суммы в CI-пайплайн.
  • Конечный пользователь:

    • Проверить размер и содержимое архива через unzip -l.
    • Не передавать пароли по открытому каналу.

Правила безопасности и приватности

  • Не храните чувствительные данные в незашифрованных архивов на общих носителях.
  • Для шифрования рассмотрите GPG или безопасное хранение ключей. ZIP-шифрование (–encrypt) удобно, но имеет ограничения по стойкости.
  • При работе с данными, подпадающими под GDPR или локальные законы, убедитесь в соответствии политики хранения и передачи данных.

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

  • Создать рекурсивно: zip -r out.zip folder
  • Максимальное сжатие: zip -9 -r out.zip folder
  • Исключить шаблоны: zip -r out.zip folder -x “.log” “tmp/
  • Список содержимого: unzip -l out.zip
  • Тест архива: unzip -t out.zip

FAQ

Q: Можно ли заархивировать только файлы, а не каталоги?

A: Да. Укажите нужные файлы явно или используйте find, чтобы выбрать только файлы и передать их в zip.

Q: Как распаковать zip, сохраняя права доступа?

A: zip по умолчанию сохраняет базовые права. Для полного сохранения владельца/группы/разрешений лучше использовать tar с поддержкой сохранения прав, если это критично.

Q: Безопасно ли хранить пароль от zip в скрипте?

A: Нет. Пароли в скрипте очевидно небезопасны. Используйте менеджер секретов или шифрование вне архива.

Итог

ZIP — простой и совместимый формат для упаковки папок в Linux. Для повседневных задач достаточно zip -r и базовых флагов. Для автоматизации используйте find/xargs или скрипты, а для безопасного хранения конфиденциальных данных — проверенные методы шифрования.

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

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

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

Фильтрация синхронизации папок в Outlook
Microsoft Outlook

Фильтрация синхронизации папок в Outlook

INDEX и MATCH в Google Таблицах
Google Таблицы

INDEX и MATCH в Google Таблицах

Удалить геотеги на iPhone и iPad
Приватность

Удалить геотеги на iPhone и iPad

Как безопасно научить детей пользоваться Facebook
Онлайн безопасность

Как безопасно научить детей пользоваться Facebook

Клонирование и расширение экрана в Windows 10
Windows

Клонирование и расширение экрана в Windows 10

Работа с файлами в Go — filepath: примеры и советы
Programming

Работа с файлами в Go — filepath: примеры и советы