В этой статье, вы узнаете, как архивировать файлы и папки с помощью архиватора zip.
В предыдущей статье вы уже узнали, как архивировать файлы и каталоги с помощью tar в Linux. Сегодня мы будем делать то же самое, но с использованием Zip.
Zip – это утилита архивирования и сжатия, поэтому мы можем использовать ее для архивирования, сжатия и распаковки файлов и каталогов в Unix-подобных операционных системах.
Архивация файлов и каталогов в Linux с помощью Zip
Zip поставляется по-умолчанию почти во всех дистрибутивах Linux. На всякий случай, если у вас его нет, вы можете установить zip с помощью диспетчера пакетов.
В Arch Linux и производных:
sudo pacman -S zip unzip
RHEL, CentOS, Fedora:
sudo yum install zip unzip
Debian, Ubuntu, Linux Mint:
sudo apt-get install zip unzip
SUSE/openSUSE:
sudo zypper install zip unzip
Теперь рассмотрим несколько примеров.
Как создать архив с помощью zip
Чтобы архивировать группу файлов в один, просто выполните команду в терминале:
zip test.zip test1.txt test2.txt test3.txt
Здесь мы создаем архив с именем test.zip из test1.txt, test2.txt и test3.txt. Вам не обязательно использовать расширение .zip в конце имени файла. Я добавил его для ясности.
Аналогично, чтобы создать архив каталога, вам нужно ввести команду:
zip catalog.zip linuxthebest/
Здесь я создал архив с именем catalog.zip из linuxthebest каталога. Обратите внимание, что так, вы только добавите родительский каталог в архив. Чтобы рекурсивно архивировать все подкаталоги, используйте флаг -r, как показано ниже.
zip -r catalog.zip linuxthebest/
В отличие от утилиты tar, zip создает архив и сжимает его, когда это возможно. Но tar – это архиватор, а не инструмент сжатия.
Создание архива из нескольких каталогов и/или файлов одновременно
Иногда вам может потребоваться создать архив из группы файлов и папок. Для этого запустите:
zip -r catalog.zip linuxthebest/ test1.txt test2.txt test3.txt
Вышеупомянутая команда создает архив с именем catalog.zip из каталога linuxthebest и группы файлов, а именно test1.txt, test2.txt, test3.txt.
Теперь позвольте мне показать вам еще один пример.
zip catalog.zip test4.txt
Вы заметили? Я указал существующий архив, но программа zip обновила содержимое существующего архивного файла без его замены. То есть, если вы указали существующий архив, то он обновляется, а не заменяется. Чтобы сказать проще, существующий архив сохраняется, а в него добавляется новый файл test4.txt. И это заметное преимущество программы zip перед утилитой tar.
Как извлечь архив zip
Извлечение архивов так же просто, как создание архивов. Чтобы извлечь архив, просто выполните:
unzip catalog.zip
Вы также можете выборочно извлекать определенные файлы или папки из каталога. Например, следующая команда извлечет файл test4.txt из архива catalog.zip.
unzip catalog.zip test4.txt
Как посмотреть список содержимого архива без его извлечения
Чтобы перечислить содержимое архива без его извлечения, используйте флаг -l.
unzip -l catalog.zip
Это может быть полезно, когда вы хотите найти и извлечь конкретный файл, а не извлекать весь архив.
Как создать зашифрованный архив
Другая заметная особенность zip-команды – это создание зашифрованного архива, и пользователям необходимо будет ввести пароль для извлечения или просмотра содержимого архива.
Чтобы создать зашифрованный архив, используйте флаг -e.
zip -e -r catalog.zip linuxthebest/ test1.txt test2.txt test3.txt test4.txt
При извлечении или просмотре содержимого архива вам необходимо будет ввести правильный пароль.
unzip catalog.zip
Сжатие архивов со степенью сжатия
Чтобы архивировать каталог и его содержимое с наивысшим уровнем сжатия [9], введите следующую команду:
zip -r -9 archive.zip linuxthebest/
Zip поддерживает три уровня сжатия, как указано ниже.
1 – Самый быстрый (но худший)
9 – Самый медленный (но самый лучший)
6 – Уровень по умолчанию
Исключение файлов или папок при создании архивов
Мы можем исключить нежелательные файлы или подкаталоги при создании архива. Для этого используйте флаг -x, как показано ниже:
zip -r catalog.zip linuxthebest/ -x linuxthebest/image.jpg
Вышеупомянутая команда создаст архив каталога linuxthebest, но исключит файл image.jpg из архива.
Вы можете проверить содержимое без извлечения архива с помощью следующей команды.
unzip -l catalog.zip
Удаление файлов из существующего архива
Вы можете забыть исключить некоторые нежелательные файлы или каталоги при создании архивов. Но не беспокойтесь! Вы можете удалить эти файлы даже после создания архива.
Чтобы удалить ненужные файлы из существующего архива, используйте флаг -d, как показано ниже.
zip -d catalog.zip "linuxthebest/audio.mp3"
Аналогично, для удаления группы файлов одно типа, например .txt используйте команду:
zip -d catalog.zip "*.txt"
Вот и все. Надеюсь статья была полезной, и если это так, то не забудьте поделиться ею в социальных сетях, и возможно, ваш репост поможет еще кому-то.
Всем удачного дня.
Спасибо. Отличная статья! Надеюсь будет продолжение темы… Но буду рад и любой другой статье. 🙂