大文件上的md5sum

布布诺夫

语境:

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

您可以创建一个总和,如下所示:

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

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

我已经用其他语言看到了这一点,但是我想知道如何在Bash中做到这一点我已经尝试过各种md5sum -c涉及管道等的排列方式。


无需使用md5sum -c,您是否需要将哈希重新计算到一个新文件中,然后对它们进行“比较”?

您可以使用

find /directory/path/ -type f -print0 | xargs -0 md5sum blah blah

处理大量文件。

PS:不能选择Rsync

更新2:就目前而言-

使用head,find和md5sum;然后,可以从源目录中快速创建一个文件,然后在目标位置上进行计算后,在另一侧与diff进行比较。是否有巧妙的单行代码或脚本?

杰斯珀

仅通过采样文件的第一个兆字节来验证内容可能不会检测到某些较大的文件是否已经以一种或另一种方式损坏,损坏或更改。这样做的原因是,当可能有数百个其他兆字节可能关闭时,您仅给哈希算法一个兆字节的数据。甚至在错误位置上的一点也会给出不同的签名。

如果要验证数据完整性,最好使用CRC32算法。它比MD5快。尽管可以伪造/修改文件以使其看起来具有正确的CRC32签名,但随机的损坏位不太可能做到这一点。

更新:

这是一个不错的方法,可以对每个文件执行基于1兆字节的md5校验和:

find ./ -type f -print0 | xargs -0 -n1 -I{} sh -c "echo '{}' >> output.md5 && head -c 1M '{}' | md5sum >> output.md5"

如果您愿意,请用cksum替换md5sum。注意,我选择在输出中包括文件名。这是因为当您不给md5sum整个文件时,文件名字符串不会被传递。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何检查许多大文件上md5sum的进度?

来自分类Dev

在Linux md5sum上删除'-'

来自分类Dev

md5sum检查(无文件)

来自分类Dev

对于大文件,sha256sum / md5sum给出不同的结果(Ext4 /全盘加密)

来自分类Dev

对于大文件,sha256sum / md5sum给出不同的结果(Ext4 /全盘加密)

来自分类Dev

本地/远程服务器中相同文件上的不同md5sum

来自分类Dev

如何在Perl中存储在此数组中的文件上执行md5sum命令?

来自分类Dev

通过md5sum查找文件

来自分类Dev

获取没有文件名的md5sum?

来自分类Dev

md5sum弄乱了带空格的文件名

来自分类Dev

使用md5sum验证脚本中的文件

来自分类Dev

md5sum无法打开文件,目录问题

来自分类Dev

列出所有文件的md5sum

来自分类Dev

find 列出的文件列表的 md5sum

来自分类Dev

为目录中的所有文件生成MD5sum,然后为包含该文件的MD5SUM的每个文件写入(filename).md5

来自分类Dev

Windows批处理比较md5sum与md5文件内容

来自分类Dev

在C中创建md5sum

来自分类Dev

从管道检查md5sum

来自分类Dev

md5sum有多准确?

来自分类Dev

在C中创建md5sum

来自分类Dev

Opera的Md5sum错误

来自分类Dev

计算CD / DVD的md5sum

来自分类Dev

用python转换md5sum

来自分类Dev

md5sum / dev / sdx

来自分类Dev

将文件从文件夹复制到基于md5sum的文件夹

来自分类Dev

将文件从文件夹复制到基于md5sum的文件夹

来自分类Dev

检查文件名的格式是否为<文件名>。<文件内容的md5sum>

来自分类Dev

列出大于指定大小的文件,然后创建它们的md5sum或sha256sum

来自分类Dev

在目录中如何找到文件并同时应用所有文件的md5sum?