Linux压缩解压命令大全,tar、zip、unzip用法

前言

服务器上打包备份、上传下载源码、解压第三方软件,都离不开压缩解压命令。Linux 常用两套工具:tar(配合 gzip/bzip2/xz,后缀 .tar.gz、.tar.bz2、.tar.xz)和 zip/unzip(后缀 .zip,与 Windows 互通方便)。本篇按场景汇总最常用命令,记住几个核心参数即可覆盖日常运维。

一、tar 核心参数记忆

  • c:创建打包(create)
  • x:解包(extract)
  • t:查看包内容不解压(list)
  • v:显示过程(verbose)
  • f:指定文件名(file,必须放最后)
  • z:gzip 压缩(.tar.gz)
  • j:bzip2 压缩(.tar.bz2)
  • J:xz 压缩(.tar.xz)
  • -C 目录:解压到指定目录
  • --exclude=路径:打包时排除某些目录

二、tar 打包压缩常用命令

# 1. 打包并用 gzip 压缩目录(最常用)
tar -zcvf backup.tar.gz /var/www/html

# 2. bzip2 压缩(压缩率更高,速度慢)
tar -jcvf backup.tar.bz2 /var/www/html

# 3. xz 压缩(压缩率最高,速度最慢)
tar -Jcvf backup.tar.xz /var/www/html

# 4. 打包时排除缓存目录
tar -zcvf site.tar.gz /var/www/html --exclude=/var/www/html/cache --exclude=/var/www/html/logs

# 5. 查看压缩包内容(不解压)
tar -ztvf backup.tar.gz

三、tar 解压常用命令

# 解压 .tar.gz 到当前目录
tar -zxvf backup.tar.gz

# 解压到指定目录(目录需先存在)
mkdir -p /data/restore
tar -zxvf backup.tar.gz -C /data/restore

# .tar.bz2 解压
tar -jxvf backup.tar.bz2

# .tar.xz 解压
tar -Jxvf backup.tar.xz

# 只解压包内某个文件
tar -zxvf backup.tar.gz ./www/config.php

tar 会自动识别压缩格式,日常也可直接用 tar -xvf backup.tar.gz,省略 z/j/J。

四、zip 与 unzip

# 安装(最小化系统可能缺失)
yum install -y zip unzip

# 压缩目录为 zip
zip -r site.zip /var/www/html

# 压缩时排除某些文件
zip -r site.zip /var/www/html -x "*/cache/*" "*.log"

# 解压 zip 到当前目录
unzip site.zip

# 解压到指定目录
unzip site.zip -d /data/restore

# 查看 zip 内容
unzip -l site.zip

# 解压时覆盖已存在文件(不询问)
unzip -o site.zip

参数:-r 递归打包目录,-d 指定解压目录,-o 强制覆盖,-l 列出内容。

五、gzip / gunzip 单文件压缩

# 压缩单个文件(原文件被替换为 .gz)
gzip messages

# 解压
gunzip messages.gz
# 等价于
gzip -d messages.gz

# 保留原文件压缩
gzip -k messages

六、常见坑

  1. f 参数位置错:tar -zcvf 文件名 中 f 必须紧跟文件名,放最前面会报错;
  2. 打包用绝对路径:tar -zcvf a.tar.gz /var/www 解压时会还原完整路径;建议先 cd /var 再打包 www,或用相对路径;
  3. 解压目录不存在:-C 指定的目标目录要先 mkdir -p,否则解压失败;
  4. zip 忘记 -r:只打包了目录本身,里面文件没进去;
  5. .tar.gz 当成 .zip 解压:先 file 文件名 或 tar -ztvf 确认格式;
  6. 中文文件名乱码:unzip 加 -O CP936(老版本)或 -O gbk,解压 Windows 带来的 zip;
  7. 大文件打包占满磁盘:先确认目标分区剩余空间,备份包不要和源目录放同一分区。

七、备份场景示例

# 打包网站源码并按日期命名
tar -zcvf /backup/site_$(date +%Y%m%d).tar.gz -C /var www

# 打包数据库导出文件
mysqldump -u root -p dbname > db.sql
gzip db.sql

总结

日常备份优先 tar -zcvf 包名.tar.gz 目录,解压 tar -zxvf 包名.tar.gz;与 Windows 互通用 zip -r / unzip;f 参数紧跟文件名,解压前先确认格式和目标目录,打包大目录时注意磁盘空间和路径写法。

遇到问题加QQ23979811 协助处理


emer 发布于  2026-10-22 07:36 

Linux压缩解压命令大全,tar、zip、unzip用法

前言

服务器上经常需要压缩文件或者解压上传的压缩包,tar、zip、unzip 这些命令怎么用?本文把最常用的压缩解压命令都整理出来,一次讲清楚。

tar 命令(最常用)

tar 是 Linux 下最常用的打包压缩工具,支持 gzip、bzip2、xz 等多种压缩格式。

参数速记

参数 含义
-c 创建新的打包文件
-x 解压
-z 用 gzip 压缩(.tar.gz)
-j 用 bzip2 压缩(.tar.bz2)
-J 用 xz 压缩(.tar.xz)
-v 显示过程
-f 指定文件名(必须放最后)

压缩成 .tar.gz

最常用的,把目录打包成 tar.gz:

tar -zcvf 打包名.tar.gz 要打包的目录

比如把 /var/www/html 打包成 backup.tar.gz:

tar -zcvf backup.tar.gz /var/www/html

解压 .tar.gz

tar -zxvf 文件名.tar.gz

比如:

tar -zxvf backup.tar.gz

解压到指定目录

加 -C 参数:

tar -zxvf backup.tar.gz -C /目标目录

比如解压到 /tmp 目录:

tar -zxvf backup.tar.gz -C /tmp

只看不解压

tar -ztvf 文件名.tar.gz

列出压缩包里的文件列表,不解压。

.tar.bz2 格式

比 gzip 压缩率更高,但更慢:

# 压缩
tar -jcvf backup.tar.bz2 /var/www/html

# 解压
tar -jxvf backup.tar.bz2

.tar.xz 格式

压缩率最高,最慢:

# 压缩
tar -Jcvf backup.tar.xz /var/www/html

# 解压
tar -Jxvf backup.tar.xz

zip 和 unzip

安装

CentOS 最小化安装可能没有 zip/unzip:

yum install -y zip unzip

压缩成 zip

zip -r 打包名.zip 要打包的目录

比如:

zip -r backup.zip /var/www/html

-r 是递归,把目录下所有文件都打进去。

解压 zip

unzip 文件名.zip

比如:

unzip backup.zip

解压到指定目录

unzip 文件名.zip -d /目标目录

比如解压到 /tmp:

unzip backup.zip -d /tmp

只看不解压

unzip -l 文件名.zip

列出 zip 包里的文件列表。

解压到指定目录并覆盖

unzip -o 文件名.zip -d /目标目录

-o 是覆盖,不提示。

其他压缩格式

gz 格式(单文件压缩)

# 压缩
gzip 文件名

# 解压
gunzip 文件名.gz

bz2 格式

# 压缩
bzip2 文件名

# 解压
bunzip2 文件名.bz2

常见坑

坑1:解压后目录结构不对

解压完发现多套了一层目录。

原因: 打包的时候是带路径打的。

解决: 解压前先看一下压缩包里的结构:

tar -ztvf 文件名.tar.gz

或者 zip 用:

unzip -l 文件名.zip

坑2:解压时磁盘空间不足

解压到一半报错 No space left on device。

原因: 磁盘满了。

解决: 先看一下磁盘空间:

df -h

清理空间后再解压。

坑3:tar 参数顺序不对

执行 tar 报错。

原因: -f 参数必须放最后,后面紧跟文件名。

正确写法: tar -zcvf backup.tar.gz /目录
错误写法: tar -fzc backup.tar.gz /目录

坑4:zip 命令找不到

执行 zip 提示 command not found。

原因: 没装 zip 包。

解决:

yum install -y zip unzip

总结

格式 压缩命令 解压命令
.tar.gz tar -zcvf 名.tar.gz 目录 tar -zxvf 名.tar.gz
.tar.bz2 tar -jcvf 名.tar.bz2 目录 tar -jxvf 名.tar.bz2
.zip zip -r 名.zip 目录 unzip 名.zip
.gz gzip 文件名 gunzip 文件名.gz

最常用的就是 tar -zcvf 压缩 和 tar -zxvf 解压,记住这两个就够用了。

遇到问题加QQ23979811 协助处理


emer 发布于  2026-10-6 07:50 
'); })();