如何在Linux中解压缩文件
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