ZIP — это наиболее широко используемый формат файлов архивов, который поддерживает сжатие данных без потерь. ZIP-файл — это контейнер данных, содержащий один или несколько сжатых файлов или каталогов.

В этом руководстве вы узнаете, как распаковать файлы в системах Linux через командную строку с помощью unzipкоманды.

Установкаunzip

unzipне устанавливается по умолчанию в большинстве дистрибутивов Linux, но вы можете легко установить его с помощью диспетчера пакетов вашего дистрибутива.

Установить unzipна Ubuntu и Debian

sudo apt install unzip

Установка unzipна CentOS и Fedora

sudo yum install unzip

Как разархивировать ZIP-файл

В простейшей форме, при использовании без каких-либо опций, unzipкоманда извлекает все файлы из указанного ZIP-архива в текущий каталог.

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

unzip latest.zip

ZIP-файлы не поддерживают информацию о владельце в стиле Linux. Извлеченные файлы принадлежат пользователю, выполнившему команду.

У вас должны быть права на запись в каталог, в который вы распаковываете ZIP-архив.

Подавить вывод unzipкоманды

По умолчанию unzipпечатает имена всех извлекаемых файлов и сводку по завершении извлечения.

Используйте -qпереключатель, чтобы запретить печать этих сообщений.

unzip -q filename.zip

Разархивируйте ZIP-файл в другой каталог

Чтобы разархивировать ZIP-файл в каталог, отличный от текущего, используйте -dпереключатель:

unzip filename.zip -d /path/to/directory

Например, чтобы разархивировать архив WordPress latest.zipв /var/www/каталог, вы должны использовать следующую команду:

sudo unzip latest.zip -d /var/www

В приведенной выше команде мы используем, sudo потому что обычно пользователь, под которым мы вошли, не имеет прав на запись в /var/wwwкаталог. Когда ZIP-файлы распаковываются с помощью sudo, извлеченные файлы и каталоги принадлежат пользователю root.

Разархивируйте защищенный паролем ZIP-файл

Чтобы разархивировать файл, защищенный паролем, вызовите unzipкоманду с -Pпараметром, за которым следует пароль:

unzip -P PasswOrd filename.zip

Ввод пароля в командной строке небезопасен, и его следует избегать. Более безопасный вариант — извлечь файл обычным образом, не вводя пароль. Если ZIP-файл зашифрован, unzipвам будет предложено ввести пароль:

unzip filename.zip

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

Исключить файлы при распаковке ZIP-файла

Чтобы исключить определенные файлы или каталоги из извлечения, используйте -xпараметр, за которым следует список файлов архива, разделенных пробелами, которые вы хотите исключить из извлечения:

unzip filename.zip -x file1-to-exclude file2-to-exclude

В следующем примере мы извлекаем все файлы и каталоги из ZIP-архива, кроме .gitкаталога:

unzip filename.zip -x "*.git/*"

Перезаписать существующие файлы

Допустим, вы уже распаковали ZIP-файл и снова запускаете ту же команду:

unzip latest.zip

По умолчанию unzipвас спросят, хотите ли вы перезаписать только текущий файл, перезаписать все файлы, пропустить извлечение текущего файла, пропустить извлечение всех файлов или переименовать текущий файл.

Archive:  latest.zip
replace wordpress/xmlrpc.php? [y]es, [n]o, [A]ll, [N]one, [r]ename:

Если вы хотите перезаписать существующие файлы без запроса, используйте -oопцию:

unzip -o filename.zip

Используйте эту опцию с осторожностью. Если вы внесли какие-либо изменения в файлы, эти изменения будут потеряны.

Разархивируйте ZIP-файл без перезаписи существующих файлов

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

В этом случае используйте -nпараметр, который заставляет unzipпропустить извлечение уже существующего файла:

unzip -n filename.zip

Разархивируйте несколько ZIP-файлов

Вы можете использовать регулярные выражения для сопоставления нескольких архивов.

Например, если у вас есть несколько ZIP-файлов в вашем текущем рабочем каталоге , вы можете распаковать все файлы, используя только одну команду:

unzip '*.zip'

Обратите внимание на одинарные кавычки вокруг *.zip. Если вы забыли указать аргумент в кавычках, оболочка расширит подстановочный знак, и вы получите сообщение об ошибке.

Список содержимого Zip-файла

Чтобы просмотреть содержимое ZIP-файла, используйте -lпараметр:

unzip -l filename.zip

В приведенном ниже примере мы перечисляем все установочные файлы WordPress:

unzip -l latest.zip