服务公告
Ubuntu压缩文件夹zip命令
发布时间:2025-11-27 00:33
先把结论说清楚:在 Ubuntu 里压缩整个文件夹,最常用的就是 zip -r,把目录打成 .zip 包。下面一步一步给你整理成可直接用的小手册 💼。
一、先确认是否安装 zip 工具

sudo apt update
sudo apt install zip unzip -y
sudo apt update:更新软件包索引,确保安装的是最新可用版本。sudo apt install zip unzip -y:安装 zip 和 unzip,-y表示自动回答“是”,免得中途交互确认。zip用来压缩。unzip用来解压,将来还原压缩包会用到。🙂
二、压缩整个文件夹为 zip(最常用)
zip -r project.zip project/
zip:调用压缩程序本身。-r:表示 递归压缩,会把project/目录下的所有子目录、文件一并打包;压缩文件夹时这个参数基本必带。project.zip:生成的压缩包文件名,可以根据实际业务命名,比如时间戳、项目名等。project/:要被压缩的目录名称,可以是相对路径,也可以是绝对路径。
执行后,会在当前目录生成 project.zip,内部目录结构会保留不变,非常适合备份项目、配置或日志。
三、同时压缩多个目录或文件
zip -r backup-2025-11-25.zip site/ logs/ config.yml
backup-2025-11-25.zip:压缩包名称,这里示例按日期命名,方便追踪版本,是比较推荐的习惯。site/ logs/ config.yml:表示把site目录、logs目录以及单独的config.yml文件,一起打进一个压缩包。
适合做一次性 综合备份:代码目录 + 日志目录 + 单独配置文件打包上传或迁移 🚚。
四、压缩时排除某些文件/目录(如 node_modules、日志)
zip -r project.zip project/ -x "project/node_modules/*" "project/*.log"
zip -r project.zip project/:仍然是递归压缩整个project/目录。-x:表示 排除匹配的路径模式(exclude)。"project/node_modules/*":排除project/node_modules/目录下的所有内容,防止依赖体积极大导致压缩包庞大。"project/*.log":排除项目根目录下所有.log日志文件,避免无意义的历史日志塞满压缩包。
这种写法非常适合你在业务中做“精简打包”:只打核心代码、配置,不带依赖和大体积日志,上传部署会轻很多 ⚖️。
五、带密码的 zip 压缩(简单加一层保护)
zip -r -e secret-data.zip data/
-r:递归压缩整个目录。-e:开启 简单密码加密(会提示输入两次密码)。secret-data.zip:生成带密码的压缩包。data/:需要保护的目录。
注意:zip -e 的加密强度适合一般场景,如果是极其敏感的数据,实际生产中通常会叠加专门的加密方案,而不是单纯依赖 zip 自带加密 🔐。
六、解压 zip(顺带补齐闭环)
虽然你问题主线是“压缩”,但解压基本也会一起用到:
unzip project.zip
unzip:调用解压程序。project.zip:要解压的 zip 文件名。
执行后会在当前目录下还原 project.zip 中包含的文件与目录结构。如果压缩包里带路径,会按照内部结构创建对应目录。
七、常用 zip 压缩用法速查表
| 需求场景 | 示例命令 |
|---|---|
| 压缩单个目录 | zip -r project.zip project/ |
| 压缩多个目录和文件 | zip -r backup.zip dir1/ dir2/ file.conf |
| 压缩时排除某些目录/文件 | zip -r app.zip app/ -x "app/logs/*" "app/tmp/*" |
| 压缩并设置密码 | zip -r -e secure.zip private/ |
| 解压 zip 文件 | unzip archive.zip |
整体建议你在 Ubuntu 上养成一个习惯:
用 <span style="color:red;">zip -r</span> + 合理命名 + 必要排除项 做压缩备份,既方便传输,又利于归档管理,脚本化自动备份也非常好用 💾。
已经是第一篇啦!
下一篇: 服务器路由命令有哪些常用技巧?