如何在Linux中解压文件

评论 0 浏览 0 2018-09-01

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

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

安装unzip

在大多数Linux发行版中,unzip并不是默认安装的,但你可以使用你的发行版的软件包管理器轻松地安装它。

在Ubuntu和Debian上安装unzip的方法

sudo apt install unzip

在CentOS和Fedora上安装unzip的方法

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目录没有写权限。当使用sudo对ZIP文件进行解压时,提取的文件和目录由用户root拥有。

解开一个受密码保护的ZIP文件

要解开一个受密码保护的文件,请用-P选项和密码一起调用unzip命令。

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周围的单引号。如果你忘了给参数加引号,shell会展开通配符,你会得到一个错误。

列出一个压缩文件的内容

要列出一个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命令

如果您有任何问题,请随时留言咨询。

最后更新2023-09-16
0 个评论
标签