tar 命令完整使用手册

2025-12-18 17:58:16 349

tar 命令完整使用手册

欢迎来到8455线路检测中心技术小课堂。

在 Linux 服务器管理中,文件备份、数据迁移、软件部署常需处理大量文件,将多个文件打包压缩成单个文件,能大幅提升传输效率和存储便利性。tar 命令作为 Linux 系统默认的归档压缩工具,支持打包、压缩、解压等全流程操作,兼容多种压缩格式(如 gzip、bzip2),是运维工作中的“文件处理利器”。今天就系统讲解 tar 命令的使用方法,覆盖从基础打包到进阶压缩的全场景需求。



一.基本语法和核心作用

1.1 核心作用

tar(Tape Archive)全称“磁带归档工具”,核心功能是将多个文件或目录打包成单个归档文件(.tar),同时支持结合压缩算法生成压缩文件(如 .tar.gz、.tar.bz2),也可对已有的归档/压缩文件进行解压和查看,实现“多文件整合、体积压缩、数据备份”三大核心目标。


1.2 基本语法

tar [核心选项] [归档/压缩文件名] [待处理文件/目录]

说明:tar 命令通过组合“核心选项”实现不同功能,核心选项无需加“-”前缀(传统用法),也可加前缀(兼容用法),实操中前者更常用。


1.3 核心选项含义

tar 命令功能由选项组合实现,以下是最常用的核心选项,需重点记忆:

选项

核心功能

c

创建新的归档文件(打包核心选项)

x

从归档文件中提取文件(解压核心选项)

t

查看归档文件中的内容(不解压查看)

v

显示操作过程中的详细信息(verbose,常用)

f

指定归档/压缩文件的名称(必须放在选项最后)

z

使用 gzip 算法进行压缩/解压(生成 .tar.gz 格式)

j

使用 bzip2 算法进行压缩/解压(生成 .tar.bz2 格式)


2 基础操作:仅打包不压缩(.tar 格式)

仅打包不压缩适用于需保留文件原始属性、快速整合文件的场景,生成的 .tar 文件体积与源文件总和一致。

2.1 打包文件/目录

使用 cvf 组合选项(创建+详细信息+指定文件),实现文件/目录的打包。

# 打包单个文件(将 file1.txt 打包为 file.tar)

tar cvf file.tar file1.txt

 

# 打包多个文件(将 file1.txt、file2.pdf 打包为 docs.tar)

tar cvf docs.tar file1.txt file2.pdf

 

# 打包目录(将 /home/centos/data 目录打包为 data.tar)

tar cvf data.tar /home/centos/data

# 打包目录并排除指定文件(排除 tmp 临时文件)

tar cvf backup.tar --exclude="*.tmp" /home/centos


2.2 查看打包文件内容

使用 tvf 组合选项(查看+详细信息+指定文件),无需解压即可查看 .tar 文件中的内容。

 

# 查看 data.tar 中的文件列表及属性

tar tvf data.tar

# 过滤查看指定类型文件(仅看 .txt 文件)

tar tvf docs.tar | grep ".txt"


2.3 解压打包文件

使用 xvf 组合选项(提取+详细信息+指定文件),将 .tar 文件解压到当前目录。

# 解压 data.tar 到当前目录

tar xvf data.tar

# 解压到指定目录(目录需提前创建)

mkdir -p /tmp/restore

tar xvf data.tar -C /tmp/restore

# 仅解压归档中的指定文件(只解压 file1.txt)

tar xvf docs.tar file1.txt


3 进阶操作:打包并压缩(主流格式)

结合压缩算法打包,可大幅减小文件体积,是备份和传输的常用方式。Linux 中最主流的两种格式为 .tar.gz(压缩速度快)和 .tar.bz2(压缩率更高)。

3.1 gzip 压缩/解压(.tar.gz 格式)

使用 z 选项结合 gzip 算法,压缩速度快、兼容性好,是最常用的压缩格式。

# 打包并压缩(核心选项 zcvf)

# 示例1:压缩单个目录(生成 data.tar.gz)

tar zcvf data.tar.gz /home/centos/data

# 示例2:压缩多个文件(生成 docs.tar.gz)

tar zcvf docs.tar.gz file1.txt file2.pdf img/

# 示例3:压缩时排除多个文件/目录

tar zcvf backup.tar.gz --exclude="*.log" --exclude="tmp/" /home/centos

# 查看压缩文件内容(核心选项 ztvf)

tar ztvf data.tar.gz

# 解压压缩文件(核心选项 zxvf)

# 示例1:解压到当前目录

tar zxvf data.tar.gz

# 示例2:解压到指定目录

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

 

# 示例3:仅解压压缩文件中的指定文件

tar zxvf backup.tar.gz home/centos/file1.txt


3.2 bzip2 压缩/解压(.tar.bz2 格式)

使用 j 选项结合 bzip2 算法,压缩率比 gzip 更高,但压缩速度稍慢,适合对体积要求严格的场景。

# 打包并压缩(核心选项 jcvf)

# 示例:压缩大目录(生成 large_data.tar.bz2)

tar jcvf large_data.tar.bz2 /var/log

 

# 查看压缩文件内容(核心选项 jtvf)

tar jtvf large_data.tar.bz2

 

# 解压压缩文件(核心选项 jxvf)

# 示例1:解压到当前目录

tar jxvf large_data.tar.bz2

 

# 示例2:静默解压(不显示详细信息,仅用 jxf)

tar jxf large_data.tar.bz2 -C /tmp/logs


4 特殊场景:实用操作技巧

针对运维中的特殊需求,tar 命令有多个实用技巧,可提升工作效率。

4.1 打包时保留文件权限

使用 p 选项(preserve),打包时保留文件的原始权限(如执行权限、所有者信息),适合系统配置文件备份。

# 备份 /etc 目录并保留权限

tar zcvfp etc_backup.tar.gz /etc

 

# 解压时也会恢复原始权限

tar zxvfp etc_backup.tar.gz -C /tmp/etc_restore

4.2 增量打包(仅打包更新文件)

使用N 选项,仅打包指定时间点之后更新的文件,减少备份体积和时间。

# 仅打包 2025-12-18 之后更新的文件

tar zcvf incr_backup.tar.gz -N "2025-12-18" /home/centos/data

4.3 压缩大文件时拆分体积

结合 split 命令,将大压缩文件拆分为指定大小的小文件,便于存储到多个设备或网络传输。

# 步骤1:生成大压缩文件

tar zcvf large.tar.gz /var/data

 

# 步骤2:拆分为每个 500MB 的小文件(生成 large.tar.gz.aa、ab 等)

split -b 500M large.tar.gz large.tar.gz.

 

# 步骤3:合并拆分的文件(传输后恢复为原文件)

cat large.tar.gz.a* > large.tar.gz

 

# 步骤4:解压恢复

tar zxvf large.tar.gz

4.4 从压缩文件中提取单个目录

无需解压整个文件,仅提取所需目录,节省时间和空间。

# 从 backup.tar.gz 中仅提取 /home/centos/docs 目录

tar zxvf backup.tar.gz home/centos/docs


5 操作注意事项

  • 选项顺序:f 选项必须放在最后,因为它后面需要紧跟文件名(如 tar cvf      file.tar dir/ 正确,tar fcv dir/ file.tar 错误)。

  • 绝对路径问题:打包绝对路径目录(如 /home/centos)时,解压后会保留完整路径;若想以相对路径打包,可先切换到目标目录再操作(如 cd /home && tar cvf centos.tar centos/)。

  • 空间检查:压缩大目录前,先通过      df -h 检查目标分区剩余空间,避免空间不足导致操作失败。

  • 特殊字符处理:若文件/目录名包含空格或特殊字符,需用引号包裹(如 tar cvf "my      file.tar" "my file.txt")。


6 核心命令速查表

操作需求

命令示例

打包目录为 .tar

tar cvf data.tar   /home/centos/data

打包压缩为   .tar.gz

tar zcvf   data.tar.gz /home/centos/data

打包压缩为   .tar.bz2

tar jcvf   data.tar.bz2 /var/log

查看压缩文件内容

tar ztvf   data.tar.gz

解压 .tar.gz 到指定目录

tar zxvf   data.tar.gz -C /tmp/restore

保留权限备份配置文件

tar zcvfp   etc.tar.gz /etc


总结

8455线路检测中心官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,8455线路检测中心整理了运维必备的工具包免费分享给大家使用,包含文件备份脚本、批量压缩工具等,需要的朋友可以直接咨询。

更多技术知识,8455线路检测中心期待与你一起探索。

 


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题:
XML 地图