tar -czf 一步完成打包压缩,比先 tar 再 gzip 更高效省事;因 gzip 仅支持单文件压缩、不处理目录,而 -z 参数使 tar 直接调用 gzip 算法,保留结构权限并生成单一 .tar.gz 文件。

直接用 tar -czf 命令打包并压缩,比先 tar 再 gzip 更快、更省事,还能一步到位生成 .tar.gz 文件,体积通常能减少 60%~70%。
为什么不用单独 gzip?
gzip 本身只能压缩单个文件,不能处理目录;如果先用 tar 打包成 .tar,再用 gzip 单独压缩,多了一步操作,还容易遗漏或出错。而 -z 参数让 tar 直接调用 gzip 算法,在打包同时完成压缩,效率高、逻辑清晰、不易出错。
- 单独 gzip 只能压缩已有文件(如 log.txt → log.txt.gz),原文件默认被删除
- gzip 不支持目录:运行
gzip mydir/实际只会尝试压缩目录里的普通文件,不递归也不打包,结果混乱 - tar + -z 是真正面向“备份场景”的组合:保留目录结构、权限、时间戳,且输出单一归档文件
常用压缩命令写法
记住这个核心模式:tar -czf 输出名.tar.gz 源目录或文件
-
tar -czf backup_$(date +%Y%m%d).tar.gz /var/log/—— 按日期命名,压缩整个日志目录 -
tar -czf home_backup.tar.gz /home/user --exclude='/home/user/cache' --exclude='/home/user/tmp'—— 支持排除子路径,避免备份临时数据 -
tar -czpf config_backup.tar.gz /etc/—— 加 -p 保留文件权限(对配置备份很重要)
压缩效果和实用提示
文本类内容(日志、配置、代码)压缩率最高,二进制文件(图片、视频、已压缩包)基本压不动,甚至可能略变大。
- 实测常见文本备份:100 MB 的纯文本日志目录,压缩后通常剩 30~40 MB
- 想更快?加 -z1(等价于
--fast)用最低压缩级别,速度提升明显,体积只略大 - 想更小?用 tar -cjf(bzip2)或 tar -cJf(xz),但耗时显著增加,适合归档不常访问的数据
- 压缩前可用
du -sh /path查原始大小,压缩后用ls -lh *.tar.gz对比效果
解压也很简单
还原时用对应命令即可,系统自动识别压缩格式:
-
tar -xzf backup.tar.gz—— 解压到当前目录 -
tar -xzf backup.tar.gz -C /restore/path/—— 指定解压目标路径 - 加 -v 可实时看解压哪些文件,适合大包验证过程











