直接用 tar -z 选项就能一步完成打包加压缩,生成标准的 .tar.gz 文件,不需要手动分两步调用 tar 和 gzip;核心命令为 tar -czvf archive.tar.gz file1 file2 dir/,其中 -c 创建归档、-z 调用 gzip 压缩、-v 显示过程、-f 指定输出文件名且必须置后。

直接用 tar -z 选项就能一步完成打包加压缩,生成标准的 .tar.gz 文件,不需要手动分两步调用 tar 和 gzip。
核心命令:一条命令搞定
最常用、最推荐的方式是:
tar -czvf archive.tar.gz file1 file2 dir/
其中各参数含义明确:
- -c:创建新归档(打包)
- -z:调用 gzip 进行压缩(关键!它让 tar 自动接管压缩过程)
- -v:显示详细过程(可选,方便确认哪些文件被处理)
-
-f:指定输出文件名,且必须放在最后(
archive.tar.gz是最终结果)
为什么叫“二合一”?
表面上是一个命令,实际内部做了两件事:
- 先将指定的文件或目录逐个读入,按 tar 格式组织成一个连续的数据流(即“打包”)
- 再把该数据流交给 gzip 算法实时压缩,输出为
.tar.gz文件
整个过程不生成中间 .tar 文件,效率高、不易出错,也避免了手动清理临时文件的麻烦。
常见实用变体
根据场景微调参数即可:
- 排除某些文件:
tar -czvf backup.tar.gz /home --exclude='*.log' --exclude='/home/temp' - 只压缩特定后缀:
tar -czvf docs.tar.gz *.pdf *.docx - 静默执行(脚本中常用):去掉
-v,如tar -czf data.tar.gz data/
注意几个易错点
不是所有写法都等效,尤其要避开这些误区:
-
tar -zcvf archive.gz ...—— 错!扩展名应为.tar.gz,否则解压时工具可能识别异常 -
tar -czvf archive.tar.gz .—— 可以,但当前目录下若含archive.tar.gz本身,会把它也打包进去(循环嵌套),建议加--exclude -
gzip file.txt得到的是file.txt.gz,不是.tar.gz—— 这是单文件压缩,和 tar 打包无关











