Skip to content

Linux tar 命令完全指南

一、命令概述

tar(Tape Archive)是 Linux 系统中用于文件打包和归档的核心工具,通过整合压缩程序可实现高效的文件压缩。核心特点:

  • 📦 原生支持打包/解包操作
  • ⚡️ 通过参数调用不同压缩算法(gzip/bzip2/xz)
  • 🔍 支持归档内容查看和验证

二、命令结构

tar [操作模式] [选项参数] [归档文件] [目标文件/目录]

三、核心参数详解

1. 操作模式(必须参数)

参数 功能描述
-c 创建新归档
-x 解压归档文件
-t 查看归档内容列表
-r 追加文件到归档末尾
-u 仅追加更新过的文件

2. 常用选项参数

参数 功能说明
-f 指定归档文件名(必需)
-v 显示详细处理过程
-z 调用gzip压缩(.gz)
-j 调用bzip2压缩(.bz2)
-J 调用xz压缩(.xz)
-C 指定解压目录
--exclude 排除指定文件/目录
-p 保留文件权限属性

四、实战操作指南

1. 基础打包/解包

# 打包目录(保留路径结构)
tar cf config_backup.tar /etc/nginx/

# 列出归档内容(不实际解压)
tar tvf backup.tar

# 解包到指定目录
tar xf backup.tar -C /opt/backups/

2. 压缩与解压

压缩算法对比

算法 压缩率 速度 典型扩展名
gzip 中等 最快 .tar.gz
bzip2 较高 中等 .tar.bz2
xz 最高 最慢 .tar.xz

压缩命令

# 创建gzip压缩包(推荐日常使用)
tar czvf archive.tar.gz /path/to/data

# 创建高压缩率xz包
tar cJvf critical_data.tar.xz /var/log/

智能解压

# 自动识别压缩格式(推荐)
tar xvf archive.tar.gz
tar xvf backup.tar.bz2

3. 高级技巧

# 增量备份(仅打包新修改文件)
tar uvf backup.tar /updated/files

# 排除临时文件
tar czf site_backup.tar.gz --exclude=*.tmp /var/www/

# 分卷压缩(适合大文件传输)
tar cvzf - big_file.iso | split -b 2G - big_part_

五、常用格式速查表

操作类型 命令示例
解压 .tar tar xvf file.tar
创建 .tar.gz tar czvf backup.tar.gz dir
查看 .tar.xz tar tvf archive.tar.xz
解压 .tar.bz2 tar xvf archive.tar.bz2
追加文件到压缩包 tar rzvf existing.tar.gz newfile

六、注意事项

  1. 使用 -f 参数时,文件名必须紧接参数后
  2. 压缩大文件建议配合 pv 命令显示进度:
pv bigfile.iso | tar czf backup.tar.gz -
  1. 重要操作前建议先使用 -t 参数预览归档内容
  2. 长期存储推荐使用 xz 格式,网络传输建议用 gzip

📌 现代 GNU tar (≥1.30) 支持自动格式检测,多数情况下使用 tar xvf 即可智能解压各种格式