1
| wget -qO- https://haies.cn/assets/tar_batch.sh
|
使用说明
智能压缩指定目录内文件数量较多的文件夹,自动根据目录深度和文件数量应用不同压缩规则,并排除文档、图片、视频、音频等特定文件类型。
该脚本特别适合处理日志目录、临时文件目录、上传目录等包含大量小文件的场景,能有效减少 inode 使用量,提升文件系统性能。
基本用法
- 目标目录:可选参数,不指定时默认处理脚本所在目录
- 处理深度:3-5 级目录,按从浅到深顺序
使用示例
1 2
| ./tar_batch.sh ./tar_batch.sh /path/to/data
|
相关说明
压缩规则
| 目录深度 |
条件 |
操作 |
| < 4 |
不含排除文件类型,文件数 50-100 |
压缩 |
| = 4 |
不含排除文件类型,文件数 > 50 |
压缩 |
| > 4 |
无条件 |
压缩 |
排除的文件类型
- 文档:.txt .pdf .doc .docx .xls .xlsx .ppt .pptx .odt .md .rtf
- 图片:.jpg .jpeg .png .gif .bmp .tiff .svg .webp
- 视频:.mp4 .avi .mov .mkv .flv .wmv .m4v .webm
- 音频:.mp3 .wav .flac .aac .ogg .m4a .wma
输出说明
执行后,符合条件的目录会被压缩,并在同级位置生成:
- 单卷包:
目录名.tar.gz
- 多卷包:
目录名_archive/ 文件夹(内含分卷文件)
特性说明
- 终端实时显示当前正在压缩的文件名
- 在目标目录生成带时间戳的日志文件