2. zip/unzip 命令

zip 和 unzip 命令用于将多个文件或文件夹归档打包成一个文件并用普通 zip 压缩算法进行压缩和解压缩。

这种 zip 压缩算法比较通用,使用 普通zip 压缩算法打包的 .zip 压缩文件几乎各种操作系统(包括 Windows、Linux 和 MacOS)都能够压缩了解压缩。是非常通用的压缩格式。

zip命令

作用

将文件或文件夹用普通的 zip 压缩算法进行打包并压缩,生成后缀名为 .zip 的归档文件。zip 命令支持将文件和文件夹一起打包压缩。

命令格式:

zip [选项] 压缩包名.zip 文件或文件夹1 [文件或文件夹2]

例如:

weimingze@mzstudio:~$ ls
hello.py  下载  公共  图片  文档  桌面  模板  视频  音乐
weimingze@mzstudio:~$ zip myfiles.zip hello.py 下载/
  adding: hello.py (stored 0%)
  adding: 下载/ (stored 0%)
weimingze@mzstudio:~$ ls
hello.py  myfiles.zip  下载  公共  图片  文档  桌面  模板  视频  音乐

此时的 myfiles.zip 文件是一个文件 hello.py 和一个文件夹 下载 (不包含文件夹内部的文件和文件夹) 打包并压缩的归档文件。

常用选项

选项
说明
-r
递归压缩文件夹(包含子文件夹)
-q
静默模式(不显示输出信息)
-e
加密压缩(会提示输入密码)
-m
压缩后删除原文件
-x <文件>
排除指定文件不压缩
-<压缩级别>
1-9(1最快压缩,9最佳压缩,默认6)

如:

weimingze@mzstudio:~$ rm myfiles.zip
weimingze@mzstudio:~$ ls
hello.py  下载  公共  图片  文档  桌面  模板  视频  音乐
weimingze@mzstudio:~$ zip -r myfiles.zip hello.py 下载/
... 此处省略了压缩过程的打印输出。
weimingze@mzstudio:~$ ls
hello.py  myfiles.zip  下载  公共  图片  文档  桌面  模板  视频  音乐

此时的 myfiles.zip 文件是 一个文件 hello.py 和 文件夹 下载 打包并压缩的归档文件,下载 文件夹内部的文件和文件夹也一同打包了。

unzip命令

作用

用于解压缩用普通 zip 压缩算法进行压缩的压缩包。

命令格式:

unzip [选项] 压缩包名.zip

示例

weimingze@mzstudio:~$ ls
hello.py  myfiles.zip  下载  公共  图片  文档  桌面  模板  视频  音乐
weimingze@mzstudio:~$ cp myfiles.zip 桌面/
weimingze@mzstudio:~$ cd 桌面/
weimingze@mzstudio:~/桌面$ ls
myfiles.zip
weimingze@mzstudio:~/桌面$ unzip myfiles.zip
Archive:  myfiles.zip
 extracting: hello.py
   creating: 下载/
   ... 此处省略了很多行。
weimingze@mzstudio:~/桌面$ ls
hello.py  myfiles.zip

常用选项

选项
说明
-d <路径>
指定解压到目标路径
-l
仅列出压缩包内容(不解压)
-o
强制覆盖已存在的文件(不提示)
-q
静默解压(不显示输出)
-P <密码>
直接指定密码(不安全,建议交互输入)

通用 zip 和 GUN zip 算法对比

Linux命令
zip
gzip
压缩格式
.zip
.gz
来源
Windows/Linux 通用
Linux/Unix 原生工具
是否支持文件夹
是(自动递归)
否(需先用 tar 打包)
多文件处理
支持(直接压缩多个文件)
需结合 tar
是否删除原文件
保留原文件
默认删除(-k 可保留)
压缩率
较低
中等(比 .zip 略高)
常用场景
跨平台文件交换
Linux 系统日志压缩

练习:

  1. /etc/apt 文件夹复制到家文件夹 ~
  2. 使用 du 命令查看 ~/apt 文件夹的大小。
  3. ~/apt 文件使用 zip 命令压缩为 apt.zip,然后查看压缩后文件的大小。
  4. 计算文件 apt.zip 命令对 apt 文件夹的压缩率(压缩率 = (压缩后文件大小 / 原始文件大小) × 100%)。
  5. 删除压缩后的 apt.zip 文件。