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 |
六、注意事项
- 使用
-f 参数时,文件名必须紧接参数后
- 压缩大文件建议配合
pv 命令显示进度:
pv bigfile.iso | tar czf backup.tar.gz -
- 重要操作前建议先使用
-t 参数预览归档内容
- 长期存储推荐使用 xz 格式,网络传输建议用 gzip
📌 现代 GNU tar (≥1.30) 支持自动格式检测,多数情况下使用 tar xvf 即可智能解压各种格式