Как разархивировать файлы в Linux

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 .

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.

Оставьте комментарий