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命令
zipgzip压缩格式
.zip.gz来源
Windows/Linux 通用
Linux/Unix 原生工具
是否支持文件夹
是(自动递归)
否(需先用
tar 打包)多文件处理
支持(直接压缩多个文件)
需结合
tar是否删除原文件
保留原文件
默认删除(
-k 可保留)压缩率
较低
中等(比
.zip 略高)常用场景
跨平台文件交换
Linux 系统日志压缩
练习:
- 将
/etc/apt文件夹复制到家文件夹~。 - 使用 du 命令查看
~/apt文件夹的大小。 - 将
~/apt文件使用 zip 命令压缩为apt.zip,然后查看压缩后文件的大小。 - 计算文件
apt.zip命令对apt文件夹的压缩率(压缩率 = (压缩后文件大小 / 原始文件大小) × 100%)。 - 删除压缩后的
apt.zip文件。