Linux zip/unzip命令详解:文件压缩解压参数速查表
AI 概述
本文详解 Linux/Unix 系统中 zip 和 unzip 命令的用法。作为跨平台压缩工具,它们支持创建/更新、查看及解压 ZIP 文件。核心功能包括递归压缩、分卷压缩、密码保护、调整压缩级别(0-9)及排除特定文件。文中还介绍了如何查看压缩包内容、测试完整性、选择性解压及静默操作。此外,提供了实用组合技巧与故障排查指南(如 CRC 错误、分卷缺失),并提醒跨平台传输、加密和备份时的注意事项,是高效管理压缩文件的实用参考。
目录

zip和unzip是 Linux/Unix 系统中处理 ZIP 格式压缩文件的标准工具。ZIP 是一种跨平台的压缩格式,在 Windows、macOS 和 Linux 系统间广泛使用,这使得 zip/unzip 成为文件交换和备份的理想选择。
zip 命令用于创建和更新 ZIP 压缩包,支持多种压缩级别、密码保护、分卷压缩等功能。unzip 命令则用于解压 ZIP 文件,可以查看压缩包内容、选择性提取文件、测试压缩包完整性。作为系统管理员和普通用户的常用工具,掌握 zip/unzip 能让你在不同操作系统间轻松传递和归档文件。
1. 基本语法
| 命令 | 说明 |
|---|---|
zip [options] archive.zip files |
创建或更新 ZIP 压缩包 |
unzip [options] archive.zip |
解压 ZIP 压缩包 |
zip -r archive.zip directory/ |
递归压缩整个目录 |
unzip archive.zip -d /target/path/ |
解压到指定目录 |
unzip -t archive.zip |
测试压缩包完整性 |
2. 创建 ZIP 压缩包
| 命令 | 说明 |
|---|---|
zip archive.zip file1.txt file2.txt |
压缩多个文件 |
zip -r project.zip project/ |
递归压缩目录 |
zip -j flat.zip /path/to/file.txt |
压缩时不包含目录路径(扁平化) |
zip -9 -r maxcompress.zip /etc/ |
使用最大压缩级别(最慢,体积最小) |
zip -0 -r faststore.zip media/ |
不压缩仅存储(最快) |
zip -r logs.zip /var/log -x "*.gz" |
排除匹配的文件 |
zip -q -r silent.zip directory/ |
静默模式(不输出信息) |
zip -r backup.zip . -x "*.tmp" -x "*.log" |
排除多个文件类型 |
zip -m move.zip file.txt |
压缩后删除原文件 |
3. 更新现有压缩包
| 命令 | 说明 |
|---|---|
zip archive.zip newfile.txt |
向现有压缩包添加文件 |
zip -r archive.zip newdir/ |
向现有压缩包添加目录 |
zip -u archive.zip file.txt |
仅更新已更改的文件 |
zip -d archive.zip "*.tmp" |
删除压缩包中的临时文件 |
zip -FS archive.zip |
同步压缩包与文件系统状态 |
zip -f archive.zip |
整理压缩包(优化结构) |
4. 查看与检查
<td”>unzip -t archive.zip
| 命令 | 说明 |
|---|---|
unzip -l archive.zip |
列出压缩包中的文件 |
unzip -Z -v archive.zip |
详细列出(大小、压缩率、方法) |
zipinfo archive.zip |
显示压缩包元信息 |
zipinfo -1 archive.zip |
仅列出文件名(每行一个) |
| 测试压缩包完整性 | |
zipinfo -h archive.zip |
显示头部信息 |
5. 解压文件
| 命令 | 说明 |
|---|---|
unzip archive.zip |
解压到当前目录 |
unzip archive.zip -d /tmp/extract/ |
解压到指定目录 |
unzip archive.zip file.txt |
只解压单个文件 |
unzip archive.zip "dir/*" |
解压匹配模式的文件 |
unzip -n archive.zip |
从不覆盖现有文件 |
unzip -o archive.zip |
覆盖现有文件(不提示) |
unzip -q archive.zip |
静默解压(不输出信息) |
unzip -j archive.zip |
忽略目录结构(将所有文件解压到同一目录) |
6. 密码保护的压缩包
| 命令 | 说明 |
|---|---|
zip -e secure.zip file.txt |
创建加密压缩包(交互式输入密码) |
zip -er secure-dir.zip secrets/ |
加密压缩目录 |
unzip secure.zip |
解压加密 ZIP(提示输入密码) |
zipcloak archive.zip |
为现有压缩包添加加密 |
zipcloak -d archive.zip |
移除压缩包的加密 |
zip -P password123 encrypted.zip file.txt |
使用命令行指定密码(不安全,可能暴露) |
7. 分卷压缩
| 命令 | 说明 |
|---|---|
zip -r -s 100m split-backup.zip bigdir/ |
创建 100MB 大小的分卷压缩包 |
zip -s 0 split.zip --out merged.zip |
将分卷合并为单个 ZIP 文件 |
unzip split.zip |
解压分卷压缩包(需要所有分卷) |
zip -s 2g -r media-split.zip media/ |
创建 2GB 大小的分卷 |
分卷文件命名示例:
- backup.zip(第 1 部分)
- backup.z01(第 2 部分)
- backup.z02(第 3 部分)…
8. 实用组合模式
| 命令 | 说明 |
|---|---|
zip -r backup-$(date +%Y%m%d).zip /home/user |
创建带日期戳的备份 |
find . -name "*.txt" | xargs zip textfiles.zip |
查找并压缩特定文件 |
unzip -l archive.zip | grep ".conf" |
搜索压缩包中的配置文件 |
unzip archive.zip "*.py" -d ./python-code/ |
只解压 Python 文件 |
zip -r -9 -e secure-backup.zip documents/ |
最大压缩+加密 |
unzip -q -n archive.zip -d /target/ |
静默解压,不覆盖 |
zip -r exclude-hidden.zip dir/ -x ".*" |
压缩时排除隐藏文件 |
unzip -Z -1 archive.zip | wc -l |
统计压缩包中文件数量 |
9. 常用选项速查
| 选项 | 完整名称 | 说明 |
|---|---|---|
| zip options | – | – |
-r |
--recurse-paths |
递归处理目录 |
-j |
--junk-paths |
不保存目录路径(仅文件名) |
-0 to -9 |
压缩级别(0=不压缩,9=最大压缩) | |
--quiet |
静默模式 | |
-u |
--update |
仅更新已更改的文件 |
-d |
--delete |
删除压缩包中的文件 |
-m |
--move |
压缩后删除原文件 |
-e |
--encrypt |
创建加密压缩包 |
-s |
--split-size |
创建分卷压缩 |
--exclude |
排除匹配的文件 | |
-i |
--include |
仅包含匹配的文件 |
| unzip options | – | – |
-d |
--directory |
解压到指定目录 |
-n |
--never-overwrite |
从不覆盖 |
-o |
--overwrite |
覆盖不提示 |
-q |
--quiet |
静默解压 |
-t |
--test |
测试压缩包完整性 |
-j |
--junk-paths |
忽略目录结构 |
-l |
--list |
列出文件 |
-Z |
--zipinfo |
以 zipinfo 格式输出 |
10. 故障排查
| 问题 | 解决方法 |
|---|---|
| unzip: cannot find or open | 检查文件路径和名称:ls -lh archive.zip |
| CRC error during extraction | 压缩包可能损坏,使用unzip -t archive.zip测试完整性 |
| Files overwritten without warning | 使用unzip -n避免覆盖 |
| Wrong file permissions after extract | 使用ls -l检查权限,用 chmod 和 chown 调整 |
| Password prompt fails | 重新输入密码;用zipinfo确认压缩包已加密 |
| Archive too large, need splitting | 创建分卷压缩:zip -s 100m -r large.zip dir/ |
| Missing parts when extracting split archive | 确保所有分卷文件(.zip、.z01、.z02 等)在同一目录 |
| unzip: unsupported compression method | 压缩方法不兼容,尝试在源系统重新压缩 |
| Insufficient disk space | 检查磁盘空间;提取到有足够空间的分区 |
使用 zip/unzip 时,注意以下几点:
- 跨平台传输时,避免使用特殊字符文件名;
- 加密敏感数据时使用
-e选项; - 大文件传输考虑分卷压缩;
- 备份重要数据前先用
-t测试压缩包完整性; - 批量操作时先用
-l查看内容再解压; - 对于需要长期归档的数据,建议同时保存压缩包的 MD5 校验值。
以上关于Linux zip/unzip命令详解:文件压缩解压参数速查表的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » Linux zip/unzip命令详解:文件压缩解压参数速查表
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » Linux zip/unzip命令详解:文件压缩解压参数速查表
微信
支付宝