如何在Linux中解压缩文件

ZIP是最广泛使用的存档文件格式,支持无损数据压缩。 ZIP文件是一个数据容器,其中包含一个或多个压缩文件或目录。在本教程中,我们将说明如何使用unzip命令通过命令行在Linux系统中解压缩文件。

5 min read
By myfreax
如何在Linux中解压缩文件

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

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

什么是unzip

unzip是一个命令行程序,可帮助您列出,测试和提取压缩的ZIP存档。

安装unzip

unzip在大多数Linux发行版中均未默认安装,但是您可以使用发行版的包管理器安装它。

在Ubuntu和Debian上安装unzip

sudo apt install unzip

在CentOS和Fedora上安装unzip

sudo yum install unzip

如何解压缩ZIP文件

最简单的形式是不带任何选项使用时,unzip命令会将所有文件从指定的ZIP存档提取到当前目录。

unzip filename.zip

要将ZIP归档文件提取到特定目录中,用户需要对该目录具有写权限。

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

例如,假设您下载了 Wordpress安装 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跳过对已存在文件的提取。

unzip -n filename.zip

如何解压缩多个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

结论

我们已经讨论了如何通过命令行在Linux中解压缩文件。

要在Linux系统上创建ZIP归档文件,您需要使用 zip命令