You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

大目录归档拆分时,如何在管道中计算tar.gz的md5sum

解决TB级目录归档拆分同时计算MD5校验和的问题

直接用tee结合进程替换就能实现单数据流同时完成MD5计算和拆分,完全不需要保存完整的归档文件,命令如下:

tar -vc target_dir | pigz | tee >(md5sum > target_dir.tar.gz.md5) | split -n 10 - target_dir.tar.gz.part-

命令细节解释

  • tar -vc target_dir:生成目标目录的tar归档(这里去掉了-z,因为后面用pigz做并行压缩,避免重复压缩浪费资源)
  • pigz:替代gzip的并行压缩工具,处理TB级数据时速度更快
  • tee >(md5sum > target_dir.tar.gz.md5):tee把pigz输出的压缩数据流同时分两路:一路继续传给split做拆分,另一路通过进程替换传给md5sum,计算整个归档的MD5值并写入target_dir.tar.gz.md5文件
  • split -n 10 - target_dir.tar.gz.part-:从标准输入读取数据流,拆分成10个文件,文件名前缀为target_dir.tar.gz.part-

后续完整性验证

如果需要确认拆分后的文件合并后和原始归档一致,执行:

cat target_dir.tar.gz.part-* | md5sum -c target_dir.tar.gz.md5

如果输出stdin: OK,说明数据完整无损坏。

注意事项

  • 这个方法依赖bash/zsh的进程替换功能,绝大多数服务器默认用bash,无需额外调整;如果用sh之类的小众shell,可能需要改用命名管道实现
  • 确保存放拆分文件的磁盘有足够空间,拆分后的总大小和原归档文件一致,但已经省去了保存完整归档的额外空间占用

内容的提问来源于stack exchange,提问作者justinian482

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 18:02:23