文件拆分时 md5 哈希不同,再次进行 cat 返回

文件拆分时 md5 哈希不同,再次进行 cat 返回

下面是我运行的命令splitcat文件的摘录:

sh-3.2# split -b 600m bt4-final.iso 

sh-3.2# ls -hal
total 6132096
drwxr-xr-x   6 root   staff   204B Jan 12 19:59 .
drwxr-xr-x  13 alien  staff   442B Jan 12 19:54 ..
-rw-r--r--   1 root   staff   1.5G Jan 12 19:56 bt4-final.iso
-rw-r--r--   1 root   staff   600M Jan 12 19:58 xaa
-rw-r--r--   1 root   staff   600M Jan 12 19:59 xab
-rw-r--r--   1 root   staff   297M Jan 12 19:59 xac

sh-3.2# cat $(ls -t x*) > bt4-final-reasembled.iso

sh-3.2# ls
bt4-final-reasembled.iso    xaa          xac
bt4-final.iso               xab

sh-3.2# md5 bt4*
MD5 (bt4-final-reasembled.iso) = edd4f24f3abcabb8a447a69eaa30ff39
MD5 (bt4-final.iso) = af139d2a085978618dc53cabc67b9269

为什么本质上是同一个文件的 MD5 哈希值会不同?

答案1

由于不必要的原因,您按错误的顺序将文件放在一起ls -t

cat x* > out.iso就可以了,并给出正确的输出。POSIX 保证通配符将按排序顺序返回文件。

答案2

您以错误的顺序重新构建文件。使用 时ls -t,文件将首先列出最新的文件(即,在您的情况下为最后拆分的块)。

答案3

你确定你按照相同的顺序组合它们吗?如果你按照不同的顺序组合它们,你肯定会发现 MD5 和会有所不同。

如果您按相同的顺序组合它们,则位将相同,并且您将获得相同的 md5 总和。如果位不相同,则可能意味着您的 RAM 有问题。请参阅memtest86

答案4

因为您没有按照它们开始的顺序将它们重新组合在一起。您说得对,如果您正确地重新组合它们,md5sum 应该匹配。这是一个简单的例子:

$ cat > xaa
This is the first file
$ cat > xab
This is the second file
$ cat > xac
This is the third file.
$ cat $(ls -t x*) > final.txt
$ cat final.txt
This is the third file.
This is the second file
This is the first file

尝试这个:

$ cat x* > good.txt
$ cat good.txt
This is the first file
This is the second file
This is the third file.

相关内容