我正在将 1TB 的 FreeNAS 服务器复制到 USB 外部驱动器,我使用“cp”执行此操作,复制完成后,我想将原始文件中的文件与副本文件进行比较。
这可能吗?
答案1
您可以用来diff
比较两个文件层次结构:
diff -qr /path0 /path1
Flag-r
要求递归地遍历目录,而-q
要求在文件不同时只打印一条语句,而不是详细的差异。当目录相同时,此命令不打印任何内容并以状态 0 退出。
如果您希望每次比较都显示一条消息,而不仅仅是那些失败的比较,请使用diff -qsr
。
答案2
在源驱动器上使用find
,xargs
和md5sum
:
find . -type f | xargs md5sum > sums.md5
将该文件复制到目标计算机(如果不同),然后执行以下操作:
md5sum -c sums.md5
这样做的优点是,如果您可以在服务器上运行检查,这通常比通过网络读取(或比较)快得多。不必使文件彼此“相邻”意味着您也可以在以后(当原始文件可能不再可用时)(重新)运行检查。
答案3
cp 或 move with checksum 校验和存储在文件的 xattr 中,将在复制后用于检查完整性 https://github.com/hansij66/securecopy