如何在Linux中解压缩文件

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

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

正在安装 unzip

unzip 在大多数Linux发行版中,默认情况下未安装Windows XP,但是您可以使用发行版的程序包管理器轻松安装它。

安装 unzip 在Ubuntu和Debian上

sudo apt install unzip

安装 unzip 在CentOS和Fedora上

sudo yum install unzip

如何解压缩ZIP文件

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

例如,假设您下载了Wordpress安装ZIP文件。 要将文件解压缩到当前目录,只需运行以下命令:

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/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存档。

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

如有任何疑问,请随时发表评论。

解压终端

Sidebar