Ubuntu 22.04 服务器 / 如何解压 ZIP 文件
在 Ubuntu 22.04 服务器上解压 ZIP 文件,先安装 unzip,然后运行 unzip example.zip。默认情况下,ZIP 文件的内容会解压到当前工作目录,但也可以使用 -d 选项指定其他位置。
安装 unzip 并检查文件位置
unzip 是一个用于检查 ZIP 文件内容并进行提取的命令。首先,确认是否已安装,如果找不到该命令,请安装相应的软件包。更新软件包列表并安装需要管理员权限以及访问软件包仓库。
unzip -v
sudo apt update
sudo apt install unzip
在提取之前,使用 pwd 检查当前位置,并使用 ls 查看 ZIP 文件是否存在。在下面的示例中,example.zip 应该替换为实际的文件名或路径。如果文件名包含空格,请像 "my archive.zip" 那样用引号括起来。
检查列表和基本提取
以下命令显示文件列表而不进行解压。检查文件名、大小和文件夹结构,以查看它们将被解压到哪里。
unzip -l example.zip
要解压到当前目录,请运行以下命令。如果ZIP文件中包含子文件夹,它们的结构也会被创建。如果已存在同名文件,默认情况下会提示是否覆盖。
unzip example.zip
完成后,使用ls检查结果。如果ZIP中没有顶层文件夹,多个文件可能会直接出现在当前目录中,因此将其解压到单独位置以避免与现有文件混合是很方便的。
解压到所需文件夹
在 -d 之后指定提取位置。下面的例子准备了一个具有写权限的 output 目录并将内容提取到其中。
mkdir -p output
unzip example.zip -d output
ls output
压缩文件中存储的文件夹结构将在 output 下保持不变。更改路径到其他位置时,请确保您有权限在该位置创建文件并且有足够的存储空间。通常,sudo 并不是提取您自己的文件所必需的。
覆盖并提取部分文件
如果同名文件已经存在且您想在不确认的情况下跳过它,请使用 -n。即使压缩文件中的内容是较新的,现有文件也会被保留,因此请确保结果符合您的预期。
unzip -n example.zip -d output
-o 会在没有确认的情况下覆盖同名文件,因此只有在可以接受更改现有文件时才谨慎使用。如果你只需要特定文件而不是整个压缩包,可以在文件名后指定 ZIP 内的确切路径。
unzip example.zip "docs/readme.txt" -d output
首先,在列表中检查 docs/readme.txt 是否确实存在。使用通配符时,重要的是将模式用引号括起来,以防止 shell 先展开它。
如果发生错误
要检查压缩包是否有错误,请运行以下命令。-t 在内存中提取每个条目,并将其计算的 CRC 与存储的值进行比较。检查它是否报告没有错误。此检查并不意味着文件是可信的或没有恶意内容。
unzip -t example.zip
- 文件未找到: 检查当前的位置、文件名、大小写敏感性和路径。
- 权限错误或空间不足: 检查目标目录的写入权限和剩余空间,如有必要,选择具有写入权限的其他文件夹。
- 损坏或不支持的压缩: 确保下载完整,并尝试重新接收原始文件。根据加密或压缩方法,已安装的工具可能不支持它。
- 文件名损坏: 检查创建 ZIP 的环境的字符编码以及您使用的工具的支持情况。如果有用 UTF-8 文件名重新创建的文件,尝试进行比较。
未知来源的 ZIP 应首先检查其内容,并在单独的目录中解压。检查内容和完整性不能替代全面的安全检查,并且在验证其内容之前不要执行任何脚本或可执行文件。完整的选项集可以在 unzip -h 或 Ubuntu 22.04 unzip 文档 中找到。




