Linux中zip打包多个文件无需额外参数,只需依次列出文件名,如zip docs.zip report.txt data.csv notes.md;若含目录则必须加-r选项,如zip -r backup.zip config/ script.sh README.md。

Linux 中用 zip 打包多个文件非常直接,不需要额外参数就能完成基本操作,关键在于把所有要压缩的文件名依次列在命令末尾。
基础用法:一次压缩多个文件
语法很简单:
zip archive.zip file1 file2 file3
例如,把 report.txt、data.csv 和 notes.md 打包成 docs.zip:
zip docs.zip report.txt data.csv notes.md
执行后会看到类似这样的输出:
adding: report.txt (deflated 23%)<br>adding: data.csv (deflated 67%)<br>adding: notes.md (stored 0%)
压缩多个文件并包含子目录
如果想同时打包文件和整个文件夹,只需把目录名也加进去,并带上 -r(递归)选项:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
-
-r是必须的,否则 zip 会跳过目录,只处理当前层的文件 - 目录路径可以是相对路径(如
./config/)或绝对路径(如/home/user/logs/) - 顺序无关紧要,文件和目录可混写
示例:
zip -r backup.zip config/ script.sh README.md
这会把 config/ 目录(含其全部内容)、script.sh 和 README.md 一起打进 backup.zip。
实用增强技巧
日常使用中几个高频需求可以直接通过参数实现:
- 用
-m压缩后自动删除原文件(节省空间,慎用) - 用
-e创建密码保护的压缩包(执行时会提示输入两次密码) - 用
-x排除某些文件,比如跳过临时文件:zip -r app.zip src/ -x "*.tmp" "node_modules/*" - 用
-v查看详细过程(推荐代替-q,尤其处理大文件时能确认是否卡住)
验证和后续操作
压缩完成后建议快速检查内容是否完整:
- 列出压缩包内文件:
unzip -l docs.zip - 解压到指定目录:
unzip docs.zip -d ./extracted/ - 覆盖解压已存在文件(不提示):
unzip -o docs.zip
注意:zip 默认保留原始文件权限和时间戳,但不保存 Linux 特有的硬链接或扩展属性;跨平台传输时兼容性很好。

















