Linux zip通关指南:压缩、排除与加密
linux zip
在 Linux 系统中,zip 是非常常用的文件压缩工具,它可以将多个文件、目录打包成一个 .zip 压缩包,便于备份、传输和归档。相比只适合 Linux 的 .tar.gz,.zip 格式兼容性更好,Windows、macOS 和各类服务器系统都能直接打开。
一、安装 zip 和 unzip
很多 Linux 发行版默认已经安装 zip 和 unzip,如果没有安装,可以使用包管理器安装。
Ubuntu / Debian
sudo apt update
sudo apt install zip unzip
CentOS / RHEL / Rocky Linux
sudo yum install zip unzip
或使用:
sudo dnf install zip unzip
Alpine Linux
apk add zip unzip
二、压缩单个文件
使用 zip 压缩一个文件非常简单:
zip archive.zip file.txt
执行后会生成 archive.zip,里面包含 file.txt。
如果希望压缩后删除原始文件,可以加上 -m 参数:
zip -m archive.zip file.txt
三、压缩整个目录
压缩目录时需要加上 -r 参数,表示递归处理目录中的所有内容:
zip -r project.zip project/
其中:
project.zip:生成的压缩包名称;project/:需要压缩的目录;-r:递归压缩子目录和文件。
四、排除不需要的文件
在备份项目时,常常需要排除缓存、日志、依赖目录等文件,例如:
zip -r project.zip project/ -x "*.log" "node_modules/*" ".git/*"
这个命令会压缩 project 目录,但排除:
- 所有
.log日志文件; node_modules目录;.git目录。
五、查看压缩包内容
不需要解压,也可以查看压缩包内文件列表:
unzip -l archive.zip
如果想查看更详细信息,可以使用:
unzip -v archive.zip
六、解压 zip 文件
解压整个压缩包:
unzip archive.zip
解压到指定目录:
unzip archive.zip -d /home/user/downloads/
只解压某个文件:
unzip archive.zip file.txt
解压时避免覆盖已有文件:
unzip -n archive.zip
强制覆盖已有文件:
unzip -o archive.zip
七、给压缩包加密
zip 支持密码加密,适合传输敏感文件:
zip -e secure.zip secret.txt
执行后会提示输入密码。
也可以使用 -P 直接指定密码:
zip -P 123456 secure.zip secret.txt
注意:在命令行中直接写明文密码可能被历史记录保存,安全性较低,生产环境中更推荐使用交互式输入密码。
八、提高压缩率
zip 默认压缩率适中,如果需要更高压缩率,可以使用:
zip -9 archive.zip file.txt
参数说明:
-0:只存储,不压缩;-1:快速压缩;-6:默认压缩;-9:最高压缩率。
压缩率越高,通常耗时越长,但生成的文件可能更小。
九、处理中文文件名乱码
跨平台传输中文文件时,有时会遇到文件名乱码问题,可以使用 -Z UTF-8 指定编码:
zip -r -Z UTF-8 backup.zip 项目目录/
解压时如果遇到乱码,可以尝试:
unzip -O UTF-8 archive.zip
部分系统可能需要安装 unar 或 7z 来处理复杂编码压缩包。
十、常用实用示例
1. 备份网站目录
zip -r website-backup.zip /var/www/html/
2. 备份项目并排除缓存
zip -r app.zip app/ -x "app/cache/*" "app/runtime/*" ".git/*"
3. 压缩日志文件
zip logs.zip *.log
4. 查看压缩包是否完整
unzip -t archive.zip
如果压缩包没有损坏,会显示类似 No errors detected 的提示。
十一、zip 与 tar 的区别
zip 和 tar 都可以打包文件,但使用场景不同。
| 工具 | 特点 | 常见用途 |
|---|---|---|
| zip | 自带压缩,跨平台兼容性强 | 文件传输、备份、共享 |
| tar | 主要用于打包,可配合 gzip、xz 等压缩 | Linux 系统备份、软件源码归档 |
如果只是想在 Linux 服务器之间备份,tar.gz 很常见;如果需要发给 Windows 用户或跨平台使用,zip 更方便。
总结
本文介绍了 Linux 中 zip 的常见用法,包括安装、压缩文件、压缩目录、排除文件、查看内容、解压、加密、提高压缩率以及处理中文文件名等问题。zip 命令简单实用,兼容性强,适合日常备份、文件归档和跨平台传输。掌握 zip 与 unzip 的基本命令,可以显著提高 Linux 文件管理效率。