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
в 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 .
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.