AlekNaomie BurtPilon Asked: 2022-05-13 11:27:21 +0800 CST2022-05-13 11:27:21 +0800 CST 2022-05-13 11:27:21 +0800 CST 希望使用目录中文件的哈希值比较两个不同的目录 772 通过检查每个目录中所有文件之间的哈希值来比较两个目录,并使用 sha256 哈希值确定两个目录是否相互 == shell-script macos 2 个回答 Voted Best Answer Romeo Ninov 2022-05-13T11:33:02+08:002022-05-13T11:33:02+08:00 hash您可以使用带有以下命令的函数来比较两个目录: cd dir1; sha256sum * >../hash_file cd ../dir2; sha256sum -c ../hash_file >/dev/null 2>&1 EXITCODE=$? 退出代码 0 表示目录中的文件是相同的。如果您有子目录,这可能效果不佳 Jeremy Meadows 2022-05-13T11:36:54+08:002022-05-13T11:36:54+08:00 如果您想递归地将目录中每个文件的内容包含在单个哈希中,您可以使用它find来查找所有普通文件,并 execcat将它们连接起来,然后通过管道sha256sum将其保存到文件中,如下所示: find dir1 -type f -exec cat '{}' + | sha256sum > hash1 find dir2 -type f -exec cat '{}' + | sha256sum > hash2 diff -q hash1 hash2
hash
您可以使用带有以下命令的函数来比较两个目录:退出代码 0 表示目录中的文件是相同的。如果您有子目录,这可能效果不佳
如果您想递归地将目录中每个文件的内容包含在单个哈希中,您可以使用它
find
来查找所有普通文件,并 execcat
将它们连接起来,然后通过管道sha256sum
将其保存到文件中,如下所示: