当前位置:首页>Linux>011 Linux压缩解压命令完全指南:gzip、zip、tar一篇搞定

011 Linux压缩解压命令完全指南:gzip、zip、tar一篇搞定

  • 2026-10-11 06:19:11
011 Linux压缩解压命令完全指南:gzip、zip、tar一篇搞定

Linux压缩解压命令完全指南:gzip、zip、tar一篇搞定

从单文件压缩到目录打包,一文掌握Linux所有压缩场景

一、gzip / gunzip(.gz格式)

gzip 是Linux自带的压缩工具,特点:只压缩单个文件,不打包目录,压缩后原文件消失。

基本操作

# 压缩文件(原文件消失,生成 test.txt.gz)gzip test.txtgzip -d test.txt.gz# 解压,删除.gz包,恢复原文件# 查看压缩包内容(不解压)zcat test.txt.gz# 直接查看压缩文件内容

保留原文件压缩/解压

# 压缩并保留原文件(-c 输出到标准输出,重定向保存)gzip -c test.txt > test.txt.gz# 解压并保留压缩包gunzip -c test.txt.gz > test.txt

批量操作

# 压缩目录下所有.log文件(每个文件单独压缩成.gz)gzip *.log# 结果:a.log → a.log.gz,b.log → b.log.gz ...# 解压当前目录所有.gz文件gunzip *.gz

⚠️ 注意:gzip 不能直接压缩文件夹,要打包目录需要配合 tar 使用。

二、zip / unzip(跨平台通用格式)

zip 是Windows/Linux通用的压缩格式,支持目录打包,跨平台兼容性好。

压缩(zip)

# 压缩文件zip file.zip a.txt b.txt# ⚠️ 压缩目录必须加 -r(递归)zip -r pack.zip dir1/# 压缩多个文件和目录zip -r backup.zip dir1/ file.txt dir2/# 排除特定文件zip -r pack.zip dir1/ -x "*.log"# 排除所有.log文件

解压(unzip)

# 解压到当前目录unzip pack.zip# -d 指定解压目录(重点参数!)unzip pack.zip -d /tmp/out/# 查看压缩包内容(不解压)unzip -l pack.zip# 解压指定文件unzip pack.zip a.txt

实操演示

# 1. 打包压缩网站目录zip -r web.zip /var/www/html/# 2. 解压到指定目录unzip web.zip -d /tmp/html# 3. 查看压缩包内容unzip -l web.zip

三、tar — Linux最强大的打包工具

tar 是Linux下最核心的归档工具,常与 gzip 配合生成 .tar.gz 文件。核心功能是打包(把多个文件/目录合成一个文件),压缩功能依赖 -z(gzip)等参数调用外部压缩程序。

参数说明(⚠️ -f 必须放最后!)

参数
含义
说明
-c
create
创建压缩包
-x
extract
解压包
-v
verbose
显示过程日志
-f
file
指定压缩包文件名(必须紧跟包名)
-z
gzip
使用gzip压缩/解压(生成 .tar.gz)
-C
指定目录
解压到指定目录
-t
list
查看压缩包内容(不解压)

🎯 记忆口诀:tar -zcvf = 打包压缩,tar -zxvf = 解压。参数顺序随意,但 -f 必须在最后,因为它后面紧跟文件名。

打包压缩(.tar.gz)

# 打包并压缩目录/文件(最常用)tar -zcvf test.tar.gz dir/ file1.txt# 各参数含义:# z = gzip压缩 c = 创建 v = 显示详情 f = 指定包名# 打包整个家目录tar -zcvf backup.tar.gz /home/user/# 打包多个目录tar -zcvf logs.tar.gz /var/log/nginx/ /var/log/mysql/

解压(.tar.gz)

# 解压到当前目录tar -zxvf test.tar.gz# -C 指定解压目录(重点!)tar -zxvf test.tar.gz -C /tmp/# 解压到指定目录(目录不存在会自动创建)tar -zxvf backup.tar.gz -C /data/restore/

仅打包不压缩(.tar)

# 打包(去掉 -z)tar -cvf test.tar dir/# 解包(去掉 -z)tar -xvf test.tar -C /opt/

其他常用操作

# 查看压缩包内容(不解压)tar -ztvf test.tar.gz# 解压包中的单个文件tar -zxvf test.tar.gz dir/file1.txt# 打包时排除特定文件tar -zcvf backup.tar.gz /home/user/ --exclude="*.log"

💡 本质理解:tar 负责打包(归档),-z 负责压缩(调用gzip),两者通过管道配合完成完整流程。tar 本身不压缩,它把多个文件拼成一个 .tar;-z 再把这个 .tar 压缩成 .tar.gz。同理,-j 调用 bzip2 生成 .tar.bz2,-J 调用 xz 生成 .tar.xz。

四、三种格式对比

格式
工具
支持目录
跨平台
压缩率
常见用途
.gzgzip
/gunzip
❌ 不支持
一般
中等
单文件压缩
,配合tar
.zipzip
/unzip
✅ 支持(-r)
✅ Windows通用
中等
跨平台文件传输
.tar.gztar -zcvf
/tar -zxvf
✅ 支持
Linux主流
较高
Linux服务器首选

选择建议

场景
推荐格式
命令
Linux服务器备份
.tar.gztar -zcvf backup.tar.gz /path/
分享给Windows用户
.zipzip -r share.zip /path/
仅压缩单个日志文件
.gzgzip app.log
发送源码包
.tar.gztar -zcvf source.tar.gz src/

五、高频实操示例

# 1. 备份整个项目目录(最常用)tar -zcvf project_backup.tar.gz /home/project/# 2. 解压到指定文件夹tar -zxvf project_backup.tar.gz -C /data/restore/# 3. 压缩网站根目录为zipzip -r web.zip /var/www/html/# 4. zip解压到/tmp目录unzip web.zip -d /tmp/html# 5. gzip压缩并保留原文件gzip -c app.log > app.log.gz# 6. 解压gz并保留压缩包gunzip -c app.log.gz > app.log# 7. 打包多个目录并压缩tar -zcvf logs_2026.tar.gz /var/log/nginx/ /var/log/mysql/# 8. 查看压缩包内容tar -ztvf logs_2026.tar.gz# 9. 压缩时排除特定文件类型tar -zcvf backup.tar.gz /home/user/ --exclude="*.tmp"# 10. 打包不压缩(纯归档)tar -cvf archive.tar /data/

六、命令速查卡片

gzip 系列

操作
命令
压缩(原文件消失)
gzip file.txt
解压(压缩包消失)
gunzip file.txt.gz
压缩并保留原文件
gzip -c file.txt > file.txt.gz
解压并保留压缩包
gunzip -c file.txt.gz > file.txt
查看压缩文件内容
zcat file.txt.gz
批量压缩
gzip *.log

zip 系列

操作
命令
压缩文件
zip file.zip a.txt b.txt
压缩目录(必加-r)
zip -r pack.zip dir/
解压到当前目录
unzip pack.zip
解压到指定目录
unzip pack.zip -d /tmp/
查看压缩包内容
unzip -l pack.zip

tar 系列

操作
命令
打包压缩(.tar.gz)
tar -zcvf backup.tar.gz /path/
解压(.tar.gz)
tar -zxvf backup.tar.gz
解压到指定目录
tar -zxvf backup.tar.gz -C /tmp/
仅打包不压缩(.tar)
tar -cvf archive.tar /path/
查看压缩包内容
tar -ztvf backup.tar.gz
解压单个文件
tar -zxvf backup.tar.gz file.txt

提示:你可以用help来获取帮助,eg. tar --help

七、常见报错与解决

报错
原因
解决
tar: You must specify one of the '-Acdtrux' options
参数顺序错误
确保 -f 在最后
gzip: stdin: unexpected end of file
压缩包损坏
尝试 gunzip -c 恢复部分数据
zip error: Nothing to do!
压缩目录未加 -r
加上 -r 参数
Cannot open: No such file or directory
文件路径错误
检查文件是否存在

📌 如果觉得有用,欢迎点赞、在看、转发三连!

最新文章

随机文章