zip 是 Linux 下最常用的跨平台压缩工具,生成的 .zip 包可在 Windows、macOS、Linux 直接解压,兼容性极强。本文整理日常运维、文件打包、服务器备份最实用的 zip 用法,简单高效、一看就会。
一、安装 zip 与 unzip(Ubuntu/Debian)
sudo apt update
sudo apt install zip unzip -y
二、基础压缩用法
2.1 压缩单个文件
zip backup.zip file.txt
2.2 压缩多个文件
zip archive.zip file1.txt file2.jpg document.pdf
2.3 压缩目录(必须加 -r 递归)
zip -r html.zip /var/www/html
三、设置密码加密压缩
3.1 简单加密
zip -e secret.zip data.txt
3.2 加密目录
zip -r -e private.zip /home/user/private
四、压缩级别(速度 vs 体积)
级别 1(最快)~ 9(最小),默认 6。
zip -r -9 www.zip /var/www # 最高压缩
zip -r -1 fast.zip /tmp # 最快压缩
五、排除不需要的文件
5.1 排除 .log 结尾文件
zip -r backup.zip /data -x *.log
5.2 排除某个目录
zip -r project.zip project -x project/node_modules/\*
5.3 排除多个目录
zip -r code.zip code -x "*/tmp/*" "*/cache/*" "*/log/*"
六、分卷压缩(大文件必备)
按每个分卷 100MB 切割:
zip -r -s 100m bigfile.zip bigfile/
会生成:
- bigfile.z01
- bigfile.z02
- bigfile.zip
解压:
unzip bigfile.zip
七、追加文件到已存在压缩包
zip backup.zip newfile.txt
八、查看 zip 包内容(不解压)
unzip -l archive.zip
九、解压基础用法
9.1 解压到当前目录
unzip archive.zip
9.2 解压到指定目录
unzip archive.zip -d /tmp/extract/
9.3 解压时覆盖文件
unzip -o archive.zip
十、只解压单个文件
unzip archive.zip file.txt -d ./
十一、压缩时显示进度
zip -r -v backup.zip /data
十二、删除压缩包内文件
zip -d archive.zip useless.txt
十三、批量压缩目录(每个目录一个 zip)
for dir in */; do zip -r "${dir%/}.zip" "$dir"; done
十四、服务器备份常用组合
14.1 备份网站并排除缓存
zip -r -9 web_$(date +%Y%m%d).zip /var/www/html -x "*/cache/*" "*/tmp/*"
14.2 备份并加密
zip -r -e -9 db_backup.zip /var/lib/mysql
十五、常见问题
15.1 中文乱码
unzip -O CP936 archive.zip
15.2 权限丢失
解压后恢复权限:
unzip archive.zip -d /target
chmod -R 755 /target
十六、总结
zip 命令简单、通用、跨平台,掌握递归压缩、加密、排除文件、分卷、解压指定目录等技巧,基本能覆盖服务器备份、文件传输、日志打包 99% 的场景,是 Linux 必备基础命令。