Linux 压缩工具全攻略:gzip、zip、tar 原理与实战(附实验案例)

在 Linux 系统中,合理使用压缩工具可有效节省存储资源并提升文件传输效率。本文将深入解析 gzipzip 和 tar 三种常用工具的核心功能与操作逻辑,并结合文档中的实验案例演示具体用法。

一、gzip:纯文件压缩的轻量级工具

特点

  • 仅支持单个文件压缩,不支持目录打包。
  • 压缩后文件后缀为 .gz,原文件默认会被删除(可通过参数保留)。
  • 常与 tar 结合使用(如 .tar.gz 格式)。

1.1 核心命令与选项

命令说明常用选项
gzip压缩文件-c:输出到标准输出(保留原文件)
-d:解压缩
-k:保留原文件
gunzip解压缩 .gz 文件等价于 gzip -d

1.2 实战案例

案例 1:压缩文件并保留原文件
# 进入测试目录
root@ubuntu13:~/gzip# 
# 压缩 fstab 和 passwd 文件,显示过程并保留原文件
root@ubuntu13:~/gzip# gzip -vk fstab passwd 
fstab: 35.0% -- created fstab.gz  # 压缩率35%,生成 fstab.gz
passwd: 63.1% -- created passwd.gz # 压缩率63.1%,生成 passwd.gz
# 验证:原文件(fstab、passwd)和压缩文件并存
root@ubuntu13:~/gzip# ls 
fstab  fstab.gz  passwd  passwd.gz 
案例 2:解压缩文件
# 解压缩 passwd.gz
root@ubuntu13:~/gzip# gunzip passwd.gz 
# 验证:passwd.gz 被删除,恢复原文件 passwd
root@ubuntu13:~/gzip# ls 
fstab  fstab.gz  passwd 

二、zip:跨平台的打包压缩工具

特点

  • 支持目录打包和多文件压缩,压缩后后缀为 .zip
  • 兼容 Windows 系统,但可能丢失文件权限、所有者等元数据。
  • 需要单独安装 zip 和 unzip 包。

2.1 核心命令与选项

命令说明常用选项
zip压缩文件 / 目录-r:递归压缩目录
-d:指定解压路径
unzip解压缩 .zip 文件-l:列出压缩包内容
-d:指定解压到目标目录

2.2 实战案例

案例 1:打包所有 .txt 文件为 txt.zip
# 进入测试目录
[root@rocky12 find]# 
# 压缩当前目录下所有 .txt 文件
[root@rocky12 find]# zip txt.zip *.txt 
adding: test-a.txt (stored 0%)    # 存储模式(未压缩,文件内容为0)
adding: test-A.txt (stored 0%)
adding: test-b.txt (stored 0%)
adding: test-B.txt (stored 0%)
# 验证:生成 txt.zip
[root@rocky12 find]# ls 
txt.zip  test-a.txt  test-A.txt  test-b.txt  test-B.txt 
案例 2:解压到指定目录并查看内容
# 列出压缩包内容
[root@rocky12 find]# unzip -l txt.zip 
Archive: txt.zip
Length      Date    Time    Name
0  04-25-2025 10:46 test-a.txt
0  04-25-2025 10:46 test-A.txt
0  04-25-2025 10:46 test-b.txt
0  04-25-2025 10:46 test-B.txt
# 解压到当前目录下的 txt 子目录
[root@rocky12 find]# unzip txt.zip -d txt 
extracting: txt/test-a.txt       # 生成 txt 目录并解压文件
extracting: txt/test-A.txt
extracting: txt/test-b.txt
extracting: txt/test-B.txt
# 验证:txt 目录包含解压后的文件
[root@rocky12 txt]# ll 
总用量 0
-rw-r--r--. 1 root root 0 4月25 10:46 test-a.txt
# ...(其他文件类似)

三、tar:全能型归档压缩工具

特点

  • 核心功能是归档(打包),可结合压缩工具(如 gzip、bzip2)生成压缩包。
  • 支持保留文件权限、所有者等元数据,适合系统备份。
  • 常见格式:.tar(未压缩)、.tar.gz(gzip 压缩)、.tar.xz(xz 压缩)。

3.1 核心命令与选项

操作命令格式关键选项
打包tar -cvf 归档名.tar 源文件/目录-c:创建归档
-v:显示过程
-f:指定归档文件名
压缩tar -zcvf 归档名.tar.gz 源文件-z:通过 gzip 压缩
-j:通过 bzip2 压缩
-J:通过 xz 压缩
解压tar -xf 归档名.tar[.gz/xz]-x:解归档
-t:查看归档内容
-p:保留文件权限

3.2 实战案例

案例 1:打包并压缩 .log 文件
# 进入测试目录
[root@rocky12 find]# 
# 打包所有 .log 文件并生成 gzip 压缩包
[root@rocky12 find]# tar zcvf log.tar.gz *.log 
ls.log          # 正在添加文件
test-a.log
test-A.log
test-b.log
test-B.log
# 验证:生成 log.tar.gz
[root@rocky12 find]# ls 
log.tar.gz  ls.log  test-a.log  test-A.log  test-b.log  test-B.log 
案例 2:查看归档内容并解压
# 查看 log.tar.gz 中的文件列表
[root@rocky12 find]# tar -tvf log.tar.gz 
-rw-r--r-- root/root   174 2025-04-25 10:57 ls.log   # 文件权限、所有者、大小等信息
-rw-r--r-- root/root     0 2025-04-25 10:46 test-a.log
# ...(其他文件类似)
# 创建 log 目录并解压归档
[root@rocky12 find]# mkdir log && cd log
[root@rocky12 log]# tar xf ../log.tar.gz 
# 验证:解压后的文件保留原始权限和时间戳
[root@rocky12 log]# ll 
总用量 4
-rw-r--r--. 1 root root 174 4月25 10:57 ls.log
-rw-r--r--. 1 root root   0 4月25 10:46 test-a.log
# ...(其他文件类似)

四、工具对比与适用场景

工具压缩格式目录支持跨平台性元数据保留压缩效率典型用途
gzip.gz不支持一般不保留单文件压缩(如日志归档)
zip.zip支持部分丢失跨系统文件传输
tar.tar支持一般保留系统备份、多文件归档(需配合压缩)
.tar.gz支持一般保留通用压缩(兼顾压缩比与速度)

五、总结

  • 轻量级文件压缩:选 gzip,搭配 tar 实现归档 + 压缩。
  • 跨平台传输:选 zip,注意元数据可能丢失。
  • 系统级备份:选 tar 结合 xz/bzip2,兼顾压缩比与权限保留。

通过文档中的实验案例(如 gzip 保留原文件、tar 压缩日志),可快速掌握不同工具的操作逻辑。建议在实际使用中根据文件类型、传输需求和系统环境选择合适的工具组合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值