如何为要复制到另一个硬盘的充满文件的文件夹创建校验和以进行验证?

如何为要复制到另一个硬盘的充满文件的文件夹创建校验和以进行验证?

我使用的是 2015 款 MacBook Pro,刚刚更新到操作系统 12.01 Monterey,并在终端上更新到 zsh。

我可以使用 shasum -a 256(然后拖入文件)为各个文件创建校验和。

但是,我需要知道如何为文件夹创建校验和。

然后我需要知道如何创建比较校验和脚本或命令。

答案1

这就是我要开始的,使用“scratch”作为源,使用“zork”作为新副本(可能位于不同的发行版)。请注意,我使用该-a标志cp以便在复制过程中保留文件时间戳。

% (cd scratch ; tar cf - .) | shasum -a 256
a17cacd171d6cbc2f6da028c8167b0602a1146a337f602de71529999fe471e0f  -

% /bin/cp -a scratch zork

% (cd zork ; tar cf - .) | shasum -a 256
a17cacd171d6cbc2f6da028c8167b0602a1146a337f602de71529999fe471e0f  -

如果你想直接比较两个总和,你可以使用

if [[ $((cd scratch ; tar cf - .) | shasum -a 256) == $((cd zork ; tar cf - .) | shasum -a 256) ]]
then
  echo match
else
  echo no match
fi

相关内容