Введение
ZIP — наиболее часто используемый формат архивных файлов, который поддерживает сжатие данных без потерь. ZIP-файл — это контейнер данных, содержащий один или несколько сжатых файлов или каталогов.
В этом руководстве мы объясним, как распаковать (извлечь) файлы в системах Linux через командную строку с помощью команды unzip
.
Что такое разархивировать?
unzip
— это утилита, которая помогает вам просматривать, тестировать и извлекать сжатые ZIP-архивы.
unzip
не установлен по умолчанию в большинстве дистрибутивов Linux, но вы можете легко установить его с помощью диспетчера пакетов вашего дистрибутива.
Установите unzip на Ubuntu и Debian
sudo apt install unzip
Установите unzip на CentOS и Fedora
sudo yum install unzip
Как разархивировать ZIP-файл
В своей простейшей форме при использовании без каких-либо параметров команда unzip
извлечет все файлы из указанного ZIP-архива в текущий каталог.
unzip filename.zip
Чтобы извлечь ZIP-архив в определенный каталог, пользователь должен иметь права на запись в этот каталог.
ZIP-файлы не поддерживают информацию о владении в стиле Linux, и все извлеченные файлы будут принадлежать пользователю, выполнившему команду.
Например, предположим, вы загрузили установочный ZIP-файл Wordpress. Чтобы разархивировать этот файл в текущий каталог, просто выполните следующую команду:
unzip latest.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-файл
Чтобы разархивировать защищенный паролем файл, используйте параметр -P
, за которым следует пароль:
unzip -P PasswOrd filename.zip
Как исключить файлы при распаковке ZIP-файла
Если вы хотите извлечь из ZIP-архива все файлы, кроме одного, используйте параметр -x
:
unzip filename.zip -x file-to-exclude
В следующем примере мы извлекаем все файлы и каталоги из ZIP-архива, кроме каталога .git
:
unzip filename.zip -x "*.git/*"
Как перезаписать существующие файлы при использовании Unzip
Допустим, вы уже разархивировали 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
Вывод
Мы говорили о том, как разархивировать файлы в Linux из командной строки.