linux利用tar命令压缩整个文件夹
linux利用tar命令压缩整个文件夹详细介绍
在 Linux 中使用 tar 命令压缩整个文件夹时,推荐结合以下常用选项(已包含异常场景处理和最佳实践):
基础命令(压缩后保留目录结构 + gzip 压缩)
bash
目标压缩包名.tar.gz 源文件夹路径/myproject_backup_ +%Y%m%d.tar.gz myproject/
进阶用法(含进度显示 + 排除规则)
bash
backup_ +%Y%m%d.tar.gz
/path/to/source/folder/
关键参数说明:
| 参数 | 含义 |
|---|---|
-z |
启用 gzip 压缩(压缩比高,兼容性强) |
-c |
创建新的压缩包 |
-v |
显示压缩过程(避免黑屏等待焦虑) |
-f |
指定压缩包文件名(必须放在所有选项最后) |
--progress |
显示实时进度条(需 tar ≥ 1.28,大多数 Linux 发行版默认支持) |
--exclude |
支持通配符排除文件(可多次使用,建议优先排除日志 / 缓存 / 大文件) |
注意事项:
- 路径规范:源文件夹后加
/(如myproject/),表示仅压缩文件夹内容;不加/会连文件夹一起打包(结构差异见下图):
plaintext├── with_slash/ ├── without_slash/│ └── myproject/... │ └── myproject/...
- 压缩比优化:
- 文本类文件(代码 / 文档)推荐
gzip(-z) - 二进制文件(图片 / 视频)推荐
pigz(并行压缩):tar -Ipigz -cvf ...
- 文本类文件(代码 / 文档)推荐
- 生产环境建议:
bashproject.tar.gz project/ sha256sum project.tar.gz project.tar.gz.sha256
常见错误处理:
- 权限问题:添加
--no-same-owner避免保留原用户权限 - 大文件警告:超过 2GB 建议分卷压缩:
tar -zcvf - project/ | split -b 1g - project_part
实际使用时,建议将命令封装成脚本(如 backup.sh),配合 cron 定时任务实现自动化备份。