如何递归地为驱动器中的每个文件夹创建 md5 文件?

如何递归地为驱动器中的每个文件夹创建 md5 文件?

我正在寻找一个脚本,为驱动器 recursivley 内的每个文件夹创建一个 md5 校验和文件?

我的机器上确实有 md5deep 的副本,但我不太擅长编写 bash 脚本。

答案1

要获取特定目录下任何文件的 .md5 文件,可以使用以下脚本:

#!/bin/bash
if [ $# -ne 1 ] ; then
        echo "Usage $0 [directory]" 
        exit 1
fi
find $1 -type f  -print0 | while IFS= read -r -d $'\0' file; do
    (
    cd "$(dirname "$file")"
    filename="$(basename "$file")"
    md5sum "$filename" > "$filename".md5
    )
done

在 中zsh,可以使用一行命令对当前目录下的所有文件执行相同的操作(包括以点开头的文件):

for i in **/*(/D) ; do ( cd $i ; for j in *(.D) ; do md5sum $j > $j.md5 ; done ) ; done 

答案2

当然是死灵术,但我知道我们有多爱 1 line-ers

#find / -type f  -exec md5sum {} + > CheckSums

就我个人而言,我会使用 sha512sum,并限制为 /home 或其他东西,但如果你想要校验根,那就去吧。

相关内容