Ubuntu 中如何解压缩文件

Zip 是最广泛使用的归档文件格式,支持无损数据压缩。一个 zip 文件是一个数据容器,其中包含一个或多个压缩文件或目录,可以在以后提取以恢复原始文件。

Zip 还提供了一系列高级功能。你可以给你的 ZIP 归档文件加上密码保护以保护你的数据,或者将大文件拆分成更小的部分以使其更易管理。

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

安装 unzip

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

在 Ubuntu 和 Debian 上安装 unzip

sudo apt install unzip

在 CentOS 和 Fedora 上安装 unzip

sudo yum install unzip

如何解压 ZIP 文件

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

例如,假设你下载了 WordPress 安装包 的 zip 文件。要将此文件解压到当前目录,你只需运行以下命令:

unzip latest.zip

Zip 文件不存储所有权信息。提取的文件将由运行该命令的用户拥有

你必须对你正在提取 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](<https://linuxize.com/post/sudo-command-in-linux/>) 因为我们登录的用户通常没有写权限到 /var/www 目录。当使用 sudo 解压 zip 文件时,提取的文件和目录的所有者是 root 用户。

解压带密码保护的 ZIP 文件

如果你有一个受密码保护的 zip 文件,并且你想提取其内容,你可以使用 unzip 命令,并带上 -P 选项。该选项允许你指定打开文件所需的密码。一旦输入正确的密码,zip 文件的内容将被提取到当前目录。

unzip -P 密码 filename.zip

在命令行上输入密码是不安全的,应该避免使用。一个更安全的选择是在不使用 -P 选项的情况下运行该命令。

如果 zip 文件受密码保护,unzip 将提示你输入密码:

unzip filename.zip

输入密码并按回车键。

archive:  filename.zip
[filename.zip] file.txt password:

只要密码正确,unzip 将为归档中的所有加密文件使用相同的密码。

在解压 ZIP 文件时排除文件

当你想要从归档中排除特定文件或目录时,使用 -x 选项,后面跟着你想要从提取过程中排除的归档文件列表,用空格分隔。

unzip filename.zip -x 要排除的文件1 要排除的文件2

在下面的示例中,我们正在从 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 归档中恢复的文件。现在你想要做的是从 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  2023-08-02 22:39   wordpress/
     3065  2021-08-31 18:31   wordpress/xmlrpc.php
      364  2021-12-19 12:20   wordpress/wp-blog-header.php
     7415  2023-03-18 17:13   wordpress/readme.html
...
...
    21323  2023-03-09 01:15   wordpress/wp-admin/themes.php
     8353  2022-09-10 18:20   wordpress/wp-admin/options-reading.php
     4620  2021-10-24 00:12   wordpress/wp-trackback.php
     1889  2023-05-03 00:11   wordpress/wp-comments-post.php
---------                     -------
 27271400                     1648 个文件

结论

[unzip](https://linux.die.net/man/1/unzip) 是一个命令行工具,允许你列出、测试和提取压缩的 zip 归档文件。

要在 Linux 系统上创建 ZIP 归档文件,你可以使用 [zip 命令](https://linuxize.com/post/how-to-zip-files-and-directories-in-linux/) 。

如果你有任何问题,请随时留下评论。

  • 9
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值