导读 ZIP 是最广泛使用的归档文件格式,支持无损数据压缩。 ZIP 文件是包含一个或多个压缩文件或目录的数据容器。

在本教程中,我们将向您展示如何使用 unzip 命令通过命令行解压缩 Linux 系统中的文件。

什么是 unzip ?

Unzip 是一个实用程序,可帮助您列出,测试和提取压缩的 ZIP 存档。

安装解压缩

默认情况下,大多数 Linux 发行版中都没有安装 Unzip ,但您可以使用发行版的软件包管理器轻松安装它。
在 Ubuntu 和 Debian 上安装解压缩

sudo apt install unzip

CentOS 和 Fedora 上安装解压缩

sudo yum install unzip
如何解压缩 ZIP 文件

在没有任何选项的情况下使用它是最简单的形式,该 unzip 命令将从指定的 ZIP 存档中提取所有文件到当前目录。

unzip filename.zip

为了能够在特定目录中提取 ZIP 存档,用户需要对该目录具有写入权限。

ZIP 文件不支持 Linux 样式的所有权信息,并且所有提取的文件将由运行该命令的用户拥有。

例如,假设您下载了 WordPress 安装 ZIP文件(https://wordpress.org/latest.zip)。要将此文件解压缩到当前目录,只需运行以下命令:

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 目录的写权限。当使用 sudo 解压缩 ZIP 文件时,提取的文件和目录将由用户 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/*"
使用解压缩时如何覆盖现有文件

假设您已经解压缩了 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 -n filename.zip
如何解压缩多个 ZIP 文件

如果当前工作目录中有多个 ZIP 文件,则只需使用一个命令即可解压缩所有文件:

unzip '*.zip'

注意 *.zip 周围的单引号。如果您忘记引用参数, shell 将展开通配符,您将收到错误。

如何列出 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
结论

您已经学习了如何解压缩 ZIP 文件和最常见的解压缩选项。要在 Linux 系统上创建 ZIP 存档,您需要使用 zip 命令。

原文来自:https://www.linuxidc.com/Linux/2019-08/160056.htm

本文地址:https://www.linuxprobe.com/linux-unzip.html编辑:周晓雪,审核员:逄增宝

Linux命令大全:https://www.linuxcool.com/