tar -czvf 可一步完成打包与 gzip 压缩;-c 创建归档,-z 调用 gzip,-v 显示过程,-f 指定输出文件且必须置末;加 -p 保留权限,用 $(date +...) 实现日期命名,-f 必须最后,避免绝对路径。

直接用 tar -czvf 就能完成打包加 gzip 压缩,一步到位。
核心命令格式
最常用写法:
tar -czvf archive.tar.gz /path/to/dirtar -czvf backup.tar.gz file1 file2 dir/
其中:
-c 表示创建归档(打包)
-z 表示调用 gzip 压缩
-v 显示正在处理的文件(可选,方便确认)
-f 指定输出文件名,必须放在最后
压缩时保留原始权限和时间戳
默认情况下 tar 就会保留大部分元数据。如需更严格保留权限(比如可执行位、属主属组),可加 -p:
tar -czvpf project.tar.gz /opt/myapp
不加 -p 时,普通用户解压可能丢失部分权限;加了之后,root 打包的文件解压后仍保持原权限结构。
按日期自动命名压缩包
适合定时备份场景,避免覆盖:
tar -czvf logs_$(date +%Y%m%d_%H%M).tar.gz /var/log/app/- 生成类似
logs_20260729_2224.tar.gz的文件名
注意:命令中不能有空格,$(date ...) 要写在引号外,否则 shell 无法正确解析。
常见错误提醒
容易出错的地方:
-
-f 参数必须放最后:写成
tar -f -czv会报错,正确是tar -czvf - gzip 压缩只作用于整个归档流:不是先 tar 再单独 gzip,而是一次性完成,效率更高
- 源路径不要以 / 开头(除非有意保留绝对路径):否则解压时可能覆盖系统关键目录;建议用相对路径或加 -C 控制解压位置


















