Linux Zip: создание архива.

Если вы работаете в Linux и хотите сжать файлы или папки в один архив, удобным и популярным инструментом для этого является команда zip.

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

Что такое ZIP-архив и зачем он нужен?

ZIP — это формат сжатия данных, который объединяет один или несколько файлов или папок в единый файл с расширением .zip. Это удобно для:

  • экономии места на диске;
  • упрощения передачи данных по электронной почте или через интернет;
  • организации файлов и папок.

Как создать zip архив в Linux.

Проверка наличия команды zip

Далеко не все дистрибутивы Linux имеют zip, как предустановленную программу. Проверьте ее наличие следующей командой:

[root@waky practice]# zip -v
Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
This is Zip 3.0 (July 5th 2008), by Info-ZIP.
Currently maintained by E. Gordon.  Please send bug reports to
the authors using the web page at www.info-zip.org; see README for details.

Latest sources and executables are at ftp://ftp.info-zip.org/pub/infozip,
as of above date; see http://www.info-zip.org/ for other sites.

Compiled with gcc 11.3.1 20221121 (Red Hat 11.3.1-4) for Unix (Linux ELF) on Feb 14 2023.
…
[root@waky practice]#

Если вместо версии программы вы видите сообщение об ее отсутствии, вам сначала требуется установить zip с помощью соответствующего пакетного менеджера. Пример установки для CentOS и Ubuntu.

Создание ZIP-архива: базовая команда

Самая простая команда для создания архива:

zip имя_архива.zip файл1 файл2 папка1

Например:

[root@waky practice]# zip my_archive.zip file1.txt file2.txt dir1
  adding: file1.txt (deflated 92%)
  adding: file2.txt (deflated 97%)
  adding: dir1/ (stored 0%)
[root@waky practice]# 

Это создаст файл my_archive.zip, включающий указанные файлы и директорию. Обратите внимание, что только саму директорию без вложений.

Основные опции команды zip и их использование

Чтобы эффективно использовать zip, нужно знать основные опции.

-r — рекурсивное сжатие папок

Позволяет включать в архив содержимое папки и вложенных папок.

Пример:

[root@waky practice]# zip -r r_archive.zip  dir1
  adding: dir1/ (stored 0%)
  adding: dir1/file3.txt (deflated 98%)
[root@waky practice]#

В этот раз, в архив отправилась не только директория, но и вложенный в нее файл.

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

-0 — без сжатия

Создаёт ZIP без сжатия, просто объединяет файлы.

Пример:

[root@waky practice]# zip -0 0_archive.zip file1.txt file2.txt dir1
  adding: file1.txt (stored 0%)
  adding: file2.txt (stored 0%)
  adding: dir1/ (stored 0%)
[root@waky practice]#

Как видим в этот раз процент сжатия 0 по всем архивируемым объектам.

Когда использовать: если нужно только объединить разрозненные файлы, вес которых не играет роли.

-e — шифрование паролем

Добавляет пароль для защиты архива.

Пример:

[root@waky practice]# zip -e e_archive.zip file1.txt
Enter password:
Verify password:
  adding: file1.txt (deflated 92%)
[root@waky practice]#

Вас попросят ввести пароль. Данную опцию стоит использовать, если нужно защитить файлы, для последующей передачи.

-9 — максимально возможное сжатие

Использует максимально эффективные алгоритмы сжатия.

Пример:

[root@waky practice]# zip -9 9_archive.zip file1.txt file2.txt dir1
  adding: file1.txt (deflated 92%)
  adding: file2.txt (deflated 98%)
  adding: dir1/ (stored 0%)
[root@waky practice]#

На небольших объемах разницу трудно заметить, но даже в нашем примере, второй файл сжался лучше, чем в первый раз.

Когда использовать: при сжатии больших файлов, где важно уменьшить размер.

-x — исключение файлов

Позволяет исключить определённые файлы из архива.

Пример:

[root@waky practice]# zip -r x_archive.zip file1.txt file2.txt dir1 -x ./dir1/*.txt
updating: file1.txt (deflated 92%)
updating: file2.txt (deflated 97%)
updating: dir1/ (stored 0%)
[root@waky practice]#

Это создаст архив, но исключая все файлы с расширением . txt из директории dir1.

Советы и рекомендации

  • Перед созданием архива рекомендуется проверить содержимое директорий, чтобы не включить лишние файлы.
  • Используйте опцию -x, чтобы исключить временные или ненужные файлы.
  • Для автоматизации задач создайте скрипт с нужными параметрами.
  • Помните, что сжатие не всегда уменьшает размер файла, особенно если файлы уже сжаты (например, видео или изображения).

Заключение

Команда zip — мощный инструмент для создания архивов в Linux. Знание основных опций позволяет адаптировать процесс упаковки под разные задачи:

ОпцияНазначениеКогда использовать
-rрекурсивное сжатие папоксоздание резервных копий папок
-0без сжатияобъединение в один файл
-eшифрование паролемзащита данных
-9максимальное сжатие                уменьшение размера больших файлов
-xисключение файловисключение ненужных файлов из архива

Теперь вы можете легко создавать ZIP-архивы в Linux, зная, какие опции и в каких ситуациях использовать.