张芷铭的个人博客

zip

zip 是 Linux/Unix 系统中常用的文件压缩与归档工具,用于创建 ZIP 格式的压缩包(.zip 文件),支持跨平台(Windows、macOS 等均兼容)。以下是其详细用法:

基本语法

1
zip [选项] 压缩包名.zip 源文件/目录...

常用选项

选项说明
-r递归压缩目录(必须用于目录压缩,否则只压缩目录名本身)
-q安静模式,不显示压缩过程信息
-v详细模式,显示压缩过程的详细信息(文件大小、压缩率等)
-m压缩后删除原文件(move,仅保留压缩包)
-u更新压缩包:仅添加新文件或修改过的文件(不会重复压缩旧文件)
-d从压缩包中删除指定文件(用法:zip -d 压缩包.zip 文件名
-e创建加密压缩包(需输入密码,解压时也需密码)
-P 密码直接指定加密密码(避免交互式输入,适合脚本,但密码会明文显示)
-j仅压缩文件内容,不保留目录结构(所有文件直接放在压缩包根目录)
-0仅归档不压缩(速度最快,文件大小不变)
-9最高压缩比(速度最慢,压缩率最高,默认是 -6

典型示例

1. 压缩单个文件

1
zip test.zip file1.txt  # 将 file1.txt 压缩为 test.zip

2. 压缩多个文件

1
zip docs.zip report.pdf notes.txt  # 压缩多个文件到 docs.zip

3. 压缩目录(必须加 -r

1
zip -r backup.zip ./data  # 递归压缩 data 目录及其所有内容

4. 加密压缩(交互式输入密码)

1
zip -e secret.zip private.txt  # 生成加密压缩包,需输入密码

5. 加密压缩(直接指定密码,适合脚本)

1
zip -P mypassword secure.zip sensitive.doc  # 密码为 mypassword(明文风险)

6. 更新压缩包(添加新文件或修改过的文件)

1
zip -u backup.zip new_file.txt  # 向 backup.zip 中添加/更新 new_file.txt

7. 从压缩包中删除文件

1
zip -d backup.zip old_file.txt  # 从 backup.zip 中删除 old_file.txt

8. 不保留目录结构压缩

1
zip -j images.zip ./pics/*.jpg  # 压缩 pics 目录下的所有 jpg,但压缩包内无 pics 目录

9. 最高压缩比(牺牲速度换大小)

1
zip -9 -r big_compress.zip ./large_dir  # 最高压缩级别处理 large_dir

10. 压缩后删除原文件

1
zip -m temp.zip temp.log  # 压缩 temp.log 为 temp.zip 后,删除原 temp.log

注意事项

  • ZIP 格式支持单个文件最大 4GB,压缩包总大小无限制(需文件系统支持)。
  • 解压 ZIP 包需用 unzip 命令(需预先安装,如 sudo apt install unzip)。
  • 加密压缩的密码在传输或存储时需注意安全,-P 选项会在命令历史中留下明文密码,慎用。

通过组合上述选项,可满足大多数文件归档与压缩需求。

解压指令 [[unzip]]

💬 评论