Как распаковать Zip-архив в Linux
Как распаковать Zip-архив в Linux
How to Unzip Files in Linux
В этом руководстве мы объясним, как разархивировать файлы в системах Linux через командную строку с помощью unzip команды.

ZIP является наиболее широко используемым форматом архивных файлов, который поддерживает сжатие данных без потерь. ZIP-файл - это контейнер данных, содержащий один или несколько сжатых файлов или каталогов.
Установка 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
archive: filename.zip
[filename.zip] file.txt password:
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
Вывод будет выглядеть так:
Archive: latest.zip
Length Date Time Name
--------- ---------- ----- ----
0 2018-08-02 22:39 wordpress/
3065 2016-08-31 18:31 wordpress/xmlrpc.php
364 2015-12-19 12:20 wordpress/wp-blog-header.php
7415 2018-03-18 17:13 wordpress/readme.html
...
...
21323 2018-03-09 01:15 wordpress/wp-admin/themes.php
8353 2017-09-10 18:20 wordpress/wp-admin/options-reading.php
4620 2017-10-24 00:12 wordpress/wp-trackback.php
1889 2018-05-03 00:11 wordpress/wp-comments-post.php
--------- -------
27271400 1648 files
Вывод
unzip
это утилита, которая помогает вам составлять список, тестировать и извлекать сжатые ZIP-архивы.
Чтобы создать ZIP-архив в системе Linux, вам нужно использовать команду zip .