Linux压缩/解压之 zip 命令实用必会技巧

zip 是 Linux 下最常用的跨平台压缩工具,生成的 .zip 包可在 WindowsmacOSLinux 直接解压,兼容性极强。本文整理日常运维、文件打包、服务器备份最实用的 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 必备基础命令。

本文首发于 58Linux技术博客,专注Ubuntu桌面使用、Linux服务器运维与网站搭建实战。
       本系列的一部分

Linux服务器

Post 18 of 18

发表评论

粤ICP备10052831号 | © 2026 58Linux 技术笔记. All Rights Reserved. | 联系我们 | 关于本站
本站内容开放共享,仅供学习交流 | 专注 Ubuntu & Linux 实战教程
Built with GeneratePress