希望使用目录中文件的哈希值来比较两个不同的目录

希望使用目录中文件的哈希值来比较两个不同的目录

通过检查每个目录中所有文件之间的哈希值来比较两个目录,并使用 sha256 哈希值确定两个目录是否彼此 ==

答案1

您可以使用hash函数和命令来比较两个目录,例如:

cd dir1; sha256sum * >../hash_file
cd ../dir2; sha256sum -c ../hash_file >/dev/null 2>&1
EXITCODE=$?

退出代码 0 表示目录中的文件相同。如果您有子目录,这可能不太有效

答案2

如果您想递归地将目录中每个文件的内容包含在单个哈希中,您可以使用find查找所有普通文件,并使用 execcat将它们连接起来,并将其通过管道传输sha256sum并保存到文件中,如下所示:

find dir1 -type f -exec cat '{}' + | sha256sum > hash1
find dir2 -type f -exec cat '{}' + | sha256sum > hash2
diff -q hash1 hash2

相关内容