tar是Linux核心打包工具,本身不压缩但可结合gzip(-z)、bzip2(-j)实现打包压缩;常用命令如-cvf(仅归档)、-czvf(gzip压缩)、-cjvf(bzip2压缩),解压用-x对应参数,-t可预览内容。

Linux 运维中,tar 是最核心的打包工具,它本身不压缩,但能和 gzip、bzip2 等配合完成“打包+压缩”全流程。关键在于理解参数组合逻辑,而不是死记命令。
打包目录(不压缩)
仅归档,生成 .tar 文件,体积不变,适合快速备份或准备后续压缩:
- tar -cvf archive.tar /path/to/dir:把目录完整打包为 archive.tar
- -c 表示创建归档,-v 显示过程(可选),-f 必须指定文件名且放在最后
- 注意:不能省略 -f,否则 tar 会尝试写入标准输出或报错
打包并用 gzip 压缩(.tar.gz / .tgz)
最常用组合,压缩速度快、兼容性好,适合日常传输与备份:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- tar -czvf backup_$(date +%Y%m%d).tar.gz /data/app:带日期命名,压缩 /data/app 目录
- -z 表示调用 gzip,自动处理压缩与解压,无需单独运行 gzip 命令
- 解压到当前目录:tar -xzvf backup_20260915.tar.gz
- 解压到指定目录(路径需已存在):tar -xzvf backup.tar.gz -C /tmp/restore
打包并用 bzip2 压缩(.tar.bz2)
比 gzip 压缩率更高,适合对存储空间敏感的场景,但耗时稍长:
- tar -cjvf logs.tar.bz2 /var/log/nginx/:用 bzip2 压缩日志目录
- -j 替代 -z,表示启用 bzip2;其余参数逻辑一致
- 解压命令对应为:tar -xjvf logs.tar.bz2 -C /opt/logs
- 注意:目标目录 /opt/logs 必须提前创建好,-C 不会自动建目录
查看与校验压缩包内容
不解压就能确认包里有什么,避免误操作:
- tar -tzvf archive.tar.gz:列出 .tar.gz 内所有文件(-t 代替 -x)
- tar -tjvf archive.tar.bz2 | head -20:只看前 20 行,适合大包
- 加 -v 可看到权限、大小、时间等细节,便于检查是否包含预期路径

















