Если вы работаете в Linux и хотите сжать файлы или папки в один архив, удобным и популярным инструментом для этого является команда zip.
В этой статье я расскажу, как создавать ZIP-архивы, объясню основные опции и приведу примеры использования, чтобы вы могли легко и быстро упаковать нужные файлы.
Что такое ZIP-архив и зачем он нужен?
ZIP — это формат сжатия данных, который объединяет один или несколько файлов или папок в единый файл с расширением .zip. Это удобно для:
- экономии места на диске;
- упрощения передачи данных по электронной почте или через интернет;
- организации файлов и папок.
Как создать zip архив в Linux.
- Проверка наличия команды zip
- Создание ZIP-архива: базовая команда
- Основные опции команды zip и их использование
- Советы и рекомендации
Проверка наличия команды 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, зная, какие опции и в каких ситуациях использовать.