linux 中 zip 和 unzip 是最常用、跨平台兼容性最好的命令行压缩解压工具,支持递归压缩(-r)、删除文件(-d)、覆盖解压(-o)、扁平化解压(-j)、列表查看(-l)等核心功能。

Linux 中 zip 和 unzip 是最常用、跨平台兼容性最好的压缩解压工具,操作简单,支持密码加密、排除文件、更新压缩包等实用功能。默认不带图形界面,纯命令行操作,但逻辑清晰、参数直白。
压缩文件和目录
zip 默认只压缩指定文件,不递归处理目录;要压缩整个文件夹,必须加 -r(recursive)参数。
- 压缩单个文件:
zip archive.zip file.txt - 压缩多个文件:
zip archive.zip a.txt b.log c.conf - 压缩整个目录(含子目录):
zip -r project.zip myapp/ - 压缩时排除某些文件:
zip -r backup.zip /var/log/ -x "*.tmp" "cache/*" - 最大压缩率(适合大文件):
zip -9 -r large.iso.zip large.iso - 压缩后删除原文件(慎用):
zip -m notes.zip notes.md
解压 zip 文件
unzip 默认解压到当前目录,不覆盖同名文件时会提示;常用选项可跳过交互或指定路径。
- 基本解压:
unzip archive.zip - 解压到指定目录:
unzip archive.zip -d /tmp/extracted/ - 强制覆盖不提示:
unzip -o archive.zip -d ./target/ - 只解压到当前层(忽略目录结构):
unzip -j archive.zip - 用密码解压:
unzip -P 'mypassword' secure.zip - 查看压缩包内容(不解压):
unzip -l archive.zip - 校验完整性(检查是否损坏):
unzip -t archive.zip
进阶操作技巧
zip 不仅是打包工具,还能当轻量级“文件管理器”用,比如更新、删减、加密压缩包,无需重新全量打包。
- 向已有 zip 添加新文件:
zip archive.zip newfile.py - 更新压缩包中已存在的文件:
zip -u archive.zip updated.conf - 从 zip 中删除某个文件:
zip -d archive.zip old.log - 加密压缩(交互式输密):
zip -e secret.zip data.csv - 静默模式(适合脚本):
zip -q -r logback.zip logs/
基本上就这些。日常使用掌握 -r、-d、-o、-j、-l 几个参数就够应付绝大多数场景,不需要记全所有选项。注意 zip/unzip 在部分最小化系统中可能未预装,可用 yum install -y unzip 或 apt install -y unzip 补齐。