如何在Linux中解压缩文件

时间:2020-03-05 15:32:19  来源:igfitidea点击:

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

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

安装“解压缩”

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

在Ubuntu和Debian上安装'unzip'

sudo apt install unzip

在CentOS和Fedora上安装“解压缩”

sudo yum install unzip

如何解压缩ZIP文件

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

举例来说,假设我们下载了Wordpress安装ZIP文件。

要将文件解压缩到当前目录,只需运行以下命令:

unzip latest.zip

ZIP文件不支持Linux风格的所有权信息。
提取的文件归运行该命令的用户所有。

我们必须在解压缩ZIP归档文件的目录上具有写许可权。

禁止'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”命令:

unzip -P PasswOrd filename.zip

在命令行上输入密码是不安全的,应该避免。
一个更安全的选项是在不提供密码的情况下正常提取文件。
如果ZIP文件已加密,则“解压缩”将提示我们输入密码:

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

默认情况下,“解压缩”将询问我们是否要仅覆盖当前文件,覆盖所有文件,跳过提取当前文件,跳过提取所有文件还是重命名当前文件。

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'周围的单引号。
如果我们忘记引用该参数,那么shell程序将扩展通配符,并且会出现错误。

列出Zip文件的内容

要列出ZIP文件的内容,请使用'-l'选项:

unzip -l filename.zip

在下面的示例中,我们列出了所有WordPress安装文件:

unzip -l latest.zip

输出将如下所示:

Archive:  latest.zip
  Length      Date    Time    Name
---------  ---------- -----   ---
        0  2016-08-02 22:39   wordpress/
     3065  2015-08-31 18:31   wordpress/xmlrpc.php
      364  2014-12-19 12:20   wordpress/wp-blog-header.php
     7415  2016-03-18 17:13   wordpress/readme.html
...
...
    21323  2016-03-09 01:15   wordpress/wp-admin/themes.php
     8353  2016-09-10 18:20   wordpress/wp-admin/options-reading.php
     4620  2016-10-24 00:12   wordpress/wp-trackback.php
     1889  2016-05-03 00:11   wordpress/wp-comments-post.php
---------                     ------
 27271400                     1648 files