#!/bin/bash

# 使用 find 命令遍历当前目录及所有子目录
find . -type d | while read -r dir; do
    # 进入目录，如果失败则跳过
    pushd "$dir" > /dev/null || continue
    
    # 检查当前目录下是否有普通文件（排除目录本身和生成的校验文件）
    # 这里的 logic 是：寻找当前层级的普通文件，排除 sha512sum.txt
    files=$(find . -maxdepth 1 -type f ! -name "sha512sum.txt")

    if [ -n "$files" ]; then
        echo "正在处理目录: $dir"
        # 计算所有文件的 sha512 并写入/覆盖 sha512sum.txt
        # 使用 xargs 配合 sha512sum 处理文件名
        find . -maxdepth 1 -type f ! -name "sha512sum.txt" -print0 | xargs -0 sha512sum > sha512sum.txt
    fi

    # 返回之前的目录
    popd > /dev/null
done

echo "所有校验和已生成完成。"

