小编Bub*_*off的帖子

大文件上的 md5sum

语境:

我有一个大型 TB 驱动器,其中包含各种类型的大型媒体文件、ISO 映像文件等。md5sum由于速度/性能,我想在第一兆字节上验证其内容。

您可以创建这样的总和:

FILE=four_gig_file.iso
SUM=$(head -c 1M "$FILE" | md5sum)
printf "%s *%s\n" ${SUM%-} "$FILE" >>test.md5
Run Code Online (Sandbox Code Playgroud)

您将如何验证这一点,因为第一兆字节的签名与整个文件的签名不同?

我见过用其他语言完成的,但我想知道如何在Bash 中完成。我已经尝试了md5sum -c涉及管道等的各种排列。


md5sum -c您是否必须将散列重新计算到一个新文件中,然后“区分”它们,而不是使用?

你可以使用一个

find /directory/path/ -type f -print0 | xargs -0 md5sum blah blah
Run Code Online (Sandbox Code Playgroud)

处理大量文件。

PS:Rsync 不是一个选项

更新 2:就目前而言——

使用 head、find 和 md5sum;然后可以相当快地从源目录创建一个文件,然后在目标计算后用另一端的 diff 检查它。是否有聪明的单行代码或脚本?

bash find md5

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

bash ×1

find ×1

md5 ×1