我正在寻找一个脚本,为驱动器 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 或其他东西,但如果你想要校验根,那就去吧。