ZIP是最广泛使用的存档文件格式,支持无损数据压缩。 ZIP文件是一个数据容器,其中包含一个或多个压缩文件或目录。
在本教程中,我们将说明如何使用unzip命令通过命令行在Linux系统中解压缩文件。
什么是解压缩?
unzip是一个实用程序,可帮助您列出,测试和提取压缩的ZIP存档。
安装解压缩
unzip在大多数Linux发行版中均未默认安装,但是您可以使用发行版的程序包管理器轻松安装它。
在Ubuntu和Debian上安装unzipsudo apt install unzip
在CentOS和Fedora上安装unzipsudo 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文件,则可以仅使用以下命令解压缩所有文件: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
结论
我们已经讨论了如何通过命令行在Linux中解压缩文件。
要在Linux系统上创建ZIP归档文件,您需要使用zip命令。