Ubuntu 22.04文件压缩与解压缩知识点详解
1. gzip和gunzip命令
1.1 概述
gzip是Ubuntu中用于文件压缩的工具,压缩后生成.gz后缀文件,默认会删除原文件;gunzip是对应的解压缩工具,可解压.gz文件,也可通过gzip -d实现相同效果。
1.2 安装
Ubuntu 22.04默认预装gzip,若缺失可执行以下命令安装:
bash
# 更新软件源
sudo apt update
# 安装gzip
sudo apt install -y gzip
1.3 核心语法
- 压缩:
gzip [选项] 文件名 - 解压缩:
gunzip [选项] 压缩文件名.gz/gzip -d 压缩文件名.gz
常用选项:
-c:保留原文件,将压缩/解压缩结果输出到标准输出(需重定向到文件);-d:解压缩(等同于gunzip);-r:递归处理目录下的所有文件;-v:显示压缩/解压缩的详细信息;-1~-9:压缩级别(1最快但压缩率最低,9最慢但压缩率最高,默认6)。
1.4 案例代码
bash
# 1. 基础压缩(原文件会被删除,生成test.txt.gz)
gzip test.txt
# 2. 压缩并保留原文件(通过-c重定向输出)
gzip -c test.txt > test.txt.gz
# 3. 显示压缩详情
gzip -v test.txt # 输出示例:test.txt: 50% -- replaced with test.txt.gz
# 4. 递归压缩目录下所有文件(压缩dir目录内的所有文件,生成各自的.gz文件)
gzip -r dir/
# 5. 解压缩.gz文件(原压缩文件被删除,恢复test.txt)
gunzip test.txt.gz
# 6. 用gzip -d解压缩(效果同上)
gzip -d test.txt.gz
2. bzip2和bunzip2命令
2.1 概述
bzip2压缩率高于gzip,生成.bz2后缀文件;bunzip2用于解压缩.bz2文件,也可通过bzip2 -d实现。
2.2 安装
Ubuntu 22.04默认预装,缺失时安装:
bash
sudo apt update
sudo apt install -y bzip2
2.3 核心语法
- 压缩:
bzip2 [选项] 文件名 - 解压缩:
bunzip2 [选项] 压缩文件名.bz2/bzip2 -d 压缩文件名.bz2
常用选项:
-k:保留原文件(区别于gzip的-c,bzip2直接用-k更方便);-d:解压缩;-v:显示详细信息;-1~-9:压缩级别(默认9)。
2.4 案例代码
bash
# 1. 基础压缩(原文件被删除,生成test.txt.bz2)
bzip2 test.txt
# 2. 压缩并保留原文件(-k选项)
bzip2 -k test.txt
# 3. 显示压缩详情
bzip2 -v test.txt # 输出示例:test.txt: 60% -- replaced with test.txt.bz2
# 4. 解压缩.bz2文件
bunzip2 test.txt.bz2
# 5. 用bzip2 -d解压缩并保留压缩文件
bzip2 -dk test.txt.bz2
3. xz命令
3.1 概述
xz是更高压缩率的工具,生成.xz后缀文件,解压缩可通过unxz或xz -d实现。
3.2 安装
Ubuntu 22.04默认预装xz-utils,缺失时安装:
bash
sudo apt update
sudo apt install -y xz-utils
3.3 核心语法
- 压缩:
xz [选项] 文件名 - 解压缩:
unxz [选项] 压缩文件名.xz/xz -d 压缩文件名.xz
常用选项:
-k:保留原文件;-d:解压缩;-v:显示详细信息;-0~-9:压缩级别(默认6)。
3.4 案例代码
bash
# 1. 基础压缩(原文件被删除,生成test.txt.xz)
xz test.txt
# 2. 压缩并保留原文件
xz -k test.txt
# 3. 显示压缩详情
xz -v test.txt # 输出示例:test.txt (1/1)
# 100 % 128 B / 1.0 KiB = 0.125 0.0 MiB/s 0:00
# 4. 解压缩.xz文件
unxz test.txt.xz
# 5. 用xz -d解压缩并保留压缩文件
xz -dk test.txt.xz
4. 7z、7za、7zr命令
4.1 概述
7z是多功能压缩工具,支持7z、zip、rar等多种格式;7za是7z的精简版(仅支持7z格式),7zr更精简(仅支持7z格式的压缩/解压)。
4.2 安装
Ubuntu默认未预装完整版本,需手动安装:
bash
sudo apt update
# 安装完整7z工具(支持7z/zip/rar等格式)
sudo apt install -y p7zip-full p7zip-rar
4.3 核心语法
7z [命令] [选项] 压缩包名 源文件/目录
常用命令:
a:添加文件到压缩包(创建压缩包);e:提取文件到当前目录(不保留目录结构);x:提取文件并保留目录结构;d:删除压缩包中的文件;l:查看压缩包内容。
常用选项:
-t:指定压缩格式(如-t7z、-tzip、-trar);-o:指定解压目录(注意无空格,如-o/home/user);-v:显示详细信息。
4.4 案例代码
bash
# 1. 创建7z格式压缩包(包含test.txt和dir目录)
7z a -t7z test.7z test.txt dir/ # -t7z指定格式为7z(默认也为7z)
# 2. 创建zip格式压缩包
7z a -tzip test.zip test.txt dir/
# 3. 解压7z压缩包到当前目录(不保留目录结构)
7z e test.7z
# 4. 解压7z压缩包到指定目录并保留结构(-o后无空格)
7z x test.7z -o/home/user/test_dir
# 5. 查看压缩包内容
7z l test.7z
# 6. 删除压缩包中的test.txt
7z d test.7z test.txt
5. zcat、zless、bzcat、bzless命令
5.1 概述
zcat:直接查看.gz压缩文件内容(不解压);zless:分页查看.gz文件内容(类似less);bzcat:查看.bz2文件内容;bzless:分页查看.bz2文件内容。
5.2 安装
Ubuntu 22.04默认预装,无需额外安装。
5.3 核心语法
zcat 文件名.gzzless 文件名.gzbzcat 文件名.bz2bzless 文件名.bz2
5.4 案例代码
bash
# 1. 查看.gz文件内容(直接输出到终端)
zcat test.txt.gz
# 2. 分页查看.gz文件内容(按q退出,按PageUp/PageDown翻页)
zless test.txt.gz
# 3. 查看.bz2文件内容
bzcat test.txt.bz2
# 4. 分页查看.bz2文件内容
bzless test.txt.bz2
6. tar命令
6.1 概述
tar是打包工具 (非压缩工具),常与gzip/bzip2/xz结合生成压缩包(如.tar.gz/.tar.bz2/.tar.xz)。
6.2 安装
Ubuntu 22.04默认预装,缺失时安装:
bash
sudo apt update
sudo apt install -y tar
6.3 核心语法
tar [选项] 打包文件名 源文件/目录
核心选项组合:
-czvf:创建.tar.gz压缩包(c=创建,z=gzip压缩,v=详细,f=指定文件名);-cjvf:创建.tar.bz2压缩包(j=bzip2压缩);-cJvf:创建.tar.xz压缩包(J=xz压缩);-xzvf:解压.tar.gz包;-xjvf:解压.tar.bz2包;-xJvf:解压.tar.xz包;-tzvf:查看.tar.gz包内容;-C:指定解压目录。
6.4 案例代码
bash
# 1. 创建.tar.gz压缩包(打包并gzip压缩)
tar -czvf test.tar.gz test.txt dir/ # 生成test.tar.gz
# 2. 创建.tar.bz2压缩包(打包并bzip2压缩)
tar -cjvf test.tar.bz2 test.txt dir/ # 生成test.tar.bz2
# 3. 创建.tar.xz压缩包(打包并xz压缩)
tar -cJvf test.tar.xz test.txt dir/ # 生成test.tar.xz
# 4. 解压.tar.gz到当前目录
tar -xzvf test.tar.gz
# 5. 解压.tar.gz到指定目录(/home/user/test_dir)
tar -xzvf test.tar.gz -C /home/user/test_dir
# 6. 查看.tar.gz包内容(不解压)
tar -tzvf test.tar.gz
# 7. 解压.tar.xz包(静默模式,去掉-v则不显示详细信息)
tar -xJf test.tar.xz
7. cpio命令
7.1 概述
cpio是传统的打包/解包工具,支持cpio和tar格式,常用于系统备份或内核模块打包。
7.2 安装
Ubuntu 22.04默认预装,缺失时安装:
bash
sudo apt update
sudo apt install -y cpio
7.3 核心语法
- 创建打包文件:
ls 源文件/目录 | cpio -ov > 打包文件名.cpio - 解压打包文件:
cpio -idv < 打包文件名.cpio - 查看打包内容:
cpio -tv < 打包文件名.cpio
常用选项:
-o:创建打包文件(输出模式);-i:解压(输入模式);-t:查看内容;-v:显示详细信息;-d:解压时自动创建缺失的目录。
7.4 案例代码
bash
# 1. 创建cpio打包文件(包含test.txt和dir目录)
ls test.txt dir/ | cpio -ov > test.cpio # ls列出文件,通过管道传给cpio
# 2. 查看cpio包内容(不解压)
cpio -tv < test.cpio
# 3. 解压cpio包到当前目录(-d自动创建目录)
cpio -idv < test.cpio
# 4. 创建tar格式的cpio包(兼容tar)
ls test.txt | cpio -ov -H tar > test.tar # -H指定格式为tar
# 5. 解压tar格式的cpio包
cpio -idv < test.tar
本章小结
Ubuntu 22.04中文件压缩与解压缩工具各有侧重:
- 轻量压缩用
gzip,高压缩率用bzip2/xz; - 多格式支持用
7z; - 打包+压缩首选
tar(结合z/j/J选项); - 查看压缩文件内容用
zcat/bzcat或分页工具zless/bzless; - 传统备份用
cpio。
实际使用中需根据压缩率、格式兼容性选择合适工具,tar是最常用的打包压缩组合工具。