Zip 是最广泛使用的归档文件格式,支持无损数据压缩。一个 zip 文件是一个数据容器,其中包罗一个或多个压缩文件或目录,可以在以后提取以规复原始文件。
Zip 还提供了一系列高级功能。你可以给你的 ZIP 归档文件加上密码保护以保护你的数据,大概将大文件拆分成更小的部门以使其更易管理。
在本文中,我们将表明如安在 Linux 系统中使用 unzip 命令来解压文件。
安装 unzip
unzip 实用步伐在大多数 Linux 发行版中默认环境下未安装。但是,你可以使用你的发行版的软件包管理器轻松安装它。
在 Ubuntu 和 Debian 上安装 unzip
在 CentOS 和 Fedora 上安装 unzip
怎样解压 ZIP 文件
在最简单的形式下,当不带任何选项使用时,unzip 命令将从指定的 zip 归档中提取所有文件到当前目录。
比方,假设你下载了 WordPress 安装包 的 zip 文件。要将此文件解压到当前目录,你只需运行以下命令:
Zip 文件不存储所有权信息。提取的文件将由运行该命令的用户拥有。
你必须对你正在提取 ZIP 归档的目录拥有写权限。
克制 unzip 命令的输出
默认环境下,unzip 会打印它正在提取的所有文件的名称,而且一旦提取过程完成,它还会给出一个摘要。
要克制消息的打印,使用 -q 选项:
将 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 文件的内容将被提取到当前目录。
在命令行上输入密码是不安全的,应该克制使用。一个更安全的选择是在不使用 -P 选项的环境下运行该命令。
如果 zip 文件受密码保护,unzip 将提示你输入密码:
输入密码并按回车键。
- 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 会询问你是否只想要覆盖当前文件、覆盖所有文件、跳过提取当前文件、跳过提取所有文件,大概重命名当前文件。
- Archive: latest.zip
- replace wordpress/xmlrpc.php? [y]es, [n]o, [A]ll, [N]one, [r]ename:
复制代码 如果你想要在不提示的环境下覆盖现有文件,请使用 -o 选项:
请谨慎使用此选项。如果之前对文件举行了任何更改,那些更改将会丢失。
解压 ZIP 文件而不覆盖现有文件
假设你已解压了一个 zip 文件并修改了其中一些文件。但是,你误删除了一些你现在需要从 zip 归档中规复的文件。现在你想要做的是从 zip 归档中规复已删除的文件,同时保留你所做的更改。
在这种环境下,使用 -n 选项,它指示 unzip 如果目标目录中已存在文件,则跳过该文件的提取:
解压多个 ZIP 文件
你可以使用正则表达式来匹配多个归档。
比方,如果你的当前工作目录中有多个 zip 文件,你可以只使用一个命令来解压所有文件:
请注意在 *.zip 周围的单引号。如果忘记对参数加引号,shell 将会扩展通配符字符,而且你会收到错误。
列出 ZIP 文件的内容
要列出 zip 文件的内容,请使用 -l 选项:
在下面的示例中,我们正在列出所有 WordPress 安装文件:
输出将如下所示:
- 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/) 。
如果你有任何标题,请随时留下评论。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |