unzip 命令 #
unzip
命令用于解压缩和管理 ZIP 格式的压缩文件。它可以列出、测试和提取 ZIP 归档中的文件和目录。
语法 #
unzip [选项] zipfile [文件...] [-d 目标目录]
常用选项 #
选项 | 描述 |
---|---|
-l |
列出 ZIP 文件中的内容,不解压 |
-v |
详细列出 ZIP 文件中的内容,包括压缩信息 |
-t |
测试 ZIP 文件的完整性 |
-d 目录 |
将文件解压到指定目录 |
-o |
覆盖已存在的文件,不提示 |
-n |
不覆盖已存在的文件 |
-j |
不创建目录结构,将所有文件解压到同一目录 |
-P 密码 |
使用指定的密码解压加密的 ZIP 文件 |
-q |
安静模式,不显示解压过程 |
-a |
将文本文件转换为当前系统的文本格式 |
-L |
将 ZIP 文件中的所有文件名转换为小写 |
-C |
区分大小写匹配文件名(默认不区分) |
-x 文件 |
排除指定的文件 |
-Z |
仅显示 ZIP 文件的注释 |
常见用法 #
1. 解压 ZIP 文件 #
unzip archive.zip
这会将archive.zip
中的所有文件解压到当前目录。
2. 列出 ZIP 文件内容,不解压 #
unzip -l archive.zip
输出示例:
Length Date Time Name
--------- ---------- ----- ----
217 2023-07-19 10:30 file1.txt
432 2023-07-19 10:31 directory/file2.txt
--------- -------
649 2 files
3. 详细列出 ZIP 文件内容 #
unzip -v archive.zip
输出示例:
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
217 Defl:N 142 35% 2023-07-19 10:30 3d4e394f file1.txt
432 Defl:N 298 31% 2023-07-19 10:31 f4a5c612 directory/file2.txt
-------- ------- --- -------
649 440 32% 2 files
4. 解压到指定目录 #
unzip archive.zip -d /path/to/directory/
5. 测试 ZIP 文件的完整性 #
unzip -t archive.zip
6. 解压特定文件 #
unzip archive.zip file1.txt
7. 解压多个特定文件 #
unzip archive.zip file1.txt directory/file2.txt
8. 覆盖已存在的文件,不提示 #
unzip -o archive.zip
9. 不覆盖已存在的文件 #
unzip -n archive.zip
10. 不创建目录结构 #
unzip -j archive.zip
这会将所有文件解压到同一目录,忽略原始目录结构。
11. 解压加密的 ZIP 文件 #
unzip -P password archive.zip
如果不指定密码,系统会提示输入:
unzip archive.zip
12. 安静模式解压 #
unzip -q archive.zip
13. 将文本文件转换为当前系统的文本格式 #
unzip -a archive.zip
这对于在不同操作系统之间传输文本文件很有用。
14. 将 ZIP 文件中的所有文件名转换为小写 #
unzip -L archive.zip
15. 排除特定文件 #
unzip archive.zip -x "*.log" "*.tmp"
16. 显示 ZIP 文件的注释 #
unzip -Z -c archive.zip
17. 使用通配符解压特定类型的文件 #
unzip archive.zip "*.txt"
实用示例 #
1. 解压多个 ZIP 文件 #
unzip '*.zip'
2. 解压并显示特定文本文件的内容 #
unzip -p archive.zip file.txt | less
3. 检查 ZIP 文件是否加密 #
unzip -l archive.zip
如果文件加密,会显示"encrypted"标记。
4. 解压大型 ZIP 文件,显示进度 #
unzip -v archive.zip | wc -l # 获取文件总数
unzip archive.zip | pv -l -s [文件总数] > /dev/null
5. 解压 ZIP 文件并保留原始权限 #
unzip -X archive.zip
6. 解压 ZIP 文件并保留原始时间戳 #
unzip -DD archive.zip
7. 解压分卷 ZIP 文件 #
# 假设有archive.z01, archive.z02, ..., archive.zip
zip -F archive.zip --out complete.zip
unzip complete.zip
提示 #
- 在 Linux 上,可能需要安装
unzip
包,因为它可能不是默认安装的 - 使用
-l
选项可以在解压前查看 ZIP 文件的内容 - 使用
-t
选项可以检查 ZIP 文件的完整性 - 对于加密的 ZIP 文件,可以使用
-P
选项指定密码,但这种方式不安全,因为密码会显示在进程列表中 - 使用
-d
选项可以将文件解压到特定目录,避免污染当前目录 - 使用
-o
和-n
选项可以控制是否覆盖已存在的文件 - 使用
-j
选项可以忽略目录结构,将所有文件解压到同一目录 - 使用
-p
选项可以将文件内容输出到标准输出,而不是保存到文件 - ZIP 的加密功能相对较弱,对于敏感数据,考虑使用其他加密方法
- 在脚本中使用
unzip
时,可以使用-q
选项抑制输出