当前位置:首页>Linux>Linux 从入门到进阶16:打包压缩命令

Linux 从入门到进阶16:打包压缩命令

  • 2026-09-23 23:21:12
Linux 从入门到进阶16:打包压缩命令

文件打包与压缩是Linux系统中非常核心、也是使用率极高的一项基础操作。

所谓打包,对应的核心命令就是tar,它并不会减少文件的大小,它的主要作用是将零散、碎片化的多个文件、目录,合并成一个单一的归档文件。

在服务器运维中,大量的日志文件、配置文件、项目源码都是分散存储的,如果直接传输、备份极易出现文件遗漏、丢失的问题,而打包操作就可以完美解决这个问题,实现批量文件的统一管理、统一迁移。

压缩对应gzip、bzip2、xz等命令,核心作用就是通过算法剔除文件冗余数据,大幅降低文件占用的磁盘空间。同时,文件体积变小之后,跨服务器传输、线上数据迁移的网络带宽消耗会大幅降低,传输速度显著提升,这也是大文件传输前必须压缩的原因。

一、打包命令

tar是 Linux系统中最核心、最常用的归档压缩命令,全称 tape archive(磁带归档)。最初用于磁带备份,如今主要实现文件和目录的打包归档,以及压缩和解压功能。

tar命令 默认只打包不压缩,结合 gzip、bzip2、xz 等工具才能实现压缩,tar命令是运维、开发、备份文件的必备命令。

tar 标准语法格式

tar [主参数] [辅助参数] -f 归档文件 源文件/目录

强制规则:-f 参数必须放在所有参数最后一位,后面紧跟归档文件名,否则命令失效!

  • 主参数:指定核心动作(打包、解压、查看)三选一

  • 辅助参数:指定压缩算法、权限、路径等附加功能

  • -f:固定参数,指定归档文件名称

  • 源文件/目录:需要打包的对象(解压时无需填写)

主参数表

参数

作用

场景说明

c

创建新的归档文件(打包)

制作压缩包/归档包时使用

x

解压、释放归档文件

解压所有 tar 格式文件

t

查看归档文件内部内容

不解压,仅查看压缩包内文件列表

辅助参数表

参数

作用

v

显示详细执行过程

p

保留文件原有权限、属主、时间属性

C

指定解压目录(大写C,核心常用,解压到指定路径)

f

指定归档文件名(所有参数最后一位,必填)

exclude=文件/目录

打包时排除指定文件/目录

压缩算法参数表

参数

压缩工具

后缀名

特点

z

gzip

.tar.gz / .tgz

压缩速度快、兼容性好

j

bzip2

.tar.bz2

压缩率高于 gzip,速度稍慢,兼容性较好

J

xz

.tar.xz

压缩率最高、体积最小,压缩速度最慢

打包命令应用案例

1.打包压缩

规则:c + 压缩参数 + vpf + 压缩包名 + 源文件

示例1:gzip 压缩(最常用)

# 将 /test 目录打包压缩为 test.tar.gztar zcvf test.tar.gz /test

示例2:bzip2 高压缩率打包

tar jcvf test.tar.bz2 /test

示例3:打包时排除指定文件

# 打包test目录,排除里面的log文件夹和txt文件tar zcvf test.tar.gz /test --exclude=/test/log --exclude=*.txt

2.解压文件

规则:解压时无需指定压缩算法,tar 会自动识别格式

示例1:解压到当前目录

tar zxvf test.tar.gz

示例2:解压到指定目录(-C 核心用法)

# 解压到 /home 目录,注意 -C 前面加空格tar zxvf test.tar.gz -C /home

示例3:解压 .tar.bz2 / .tar.xz 文件

# bz2解压tar jxvf test.tar.bz2# xz解压tar Jxvf test.tar.xz

使用 -C 解压时,目标目录必须提前存在,否则报错。

3.查看压缩包内容(不解压)

# 查看gz压缩包tar ztvf test.tar.gz# 查看bz2压缩包tar jtvf test.tar.bz2

4.仅解压压缩包中单个文件/目录

适用于大压缩包,只需提取部分文件的场景

# 只解压压缩包内的 test.txt 文件tar zxvf test.tar.gz test.txt# 只解压指定子目录tar zxvf test.tar.gz test/data/

5.权限保留场景

服务器系统备份、迁移文件时,必须加 -p 参数,否则文件权限、用户组会丢失,导致程序运行异常。

二、独立压缩解压命令

gzip、bzip2、xz 可独立使用,仅支持单个文件压缩,不支持文件夹,压缩后默认删除原文件,生成对应后缀压缩文件。

1.gzip / gunzip 命令

独立gzip仅能压缩单文件,无打包功能,参数简洁,压缩和解压缩速度快。

语法:

  • 压缩:gzip [参数] 文件名

  • 解压:gunzip 压缩包名 或 gzip -d 压缩包名

常用参数:-k 保留原文件(默认压缩后删除原文件)、-v 显示过程。

实操案例:

# 压缩文件(删除原文件,生成test.txt.gz)gzip test.txt# 压缩并保留原文件gzip -k test.txt# 解压文件gunzip test.txt.gzgzip -d test.txt.gz

2.bzip2 / bunzip2 命令

用法与gzip完全一致,仅压缩算法不同,压缩率更高,速度稍慢。

实操案例:

# 压缩并保留原文件bzip2 -k data.log# 解压bunzip2 data.log.bz2bzip2 -d data.log.bz2

3.xz / unxz 命令

单文件极致压缩,压缩率最高、体积最小,压缩速度最慢,

实操案例:

# 压缩保留原文件xz -k bigfile.sql# 解压unxz bigfile.sql.xzxz -d bigfile.sql.xz

最新文章

随机文章