服务公告

服务公告 > Linux命令 > Ubuntu压缩文件夹zip命令

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> + 合理命名 + 必要排除项 做压缩备份,既方便传输,又利于归档管理,脚本化自动备份也非常好用 💾。

已经是第一篇啦!

下一篇: 服务器路由命令有哪些常用技巧?