Вы объединяете файлы в неправильном порядке из-за ненужного ls -t
.
cat x* > out.iso
будет хорошо и даст правильный вывод. POSIX гарантирует, что глобализация даст вам файлы в отсортированном порядке.
Вот выдержка из команд, которые я выполнил как я, split
а затем cat
файл:
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 отличается от того, что по сути является одним и тем же файлом?
Вы объединяете файлы в неправильном порядке из-за ненужного ls -t
.
cat x* > out.iso
будет хорошо и даст правильный вывод. POSIX гарантирует, что глобализация даст вам файлы в отсортированном порядке.
Вы восстанавливали файлы в неправильном порядке. При использовании ls -t
файлы сначала отображаются в списке как самые новые (т. Е. Последний разделенный фрагмент в вашем случае).
Вы уверены, что объединяете их в одном и том же порядке? Если вы объедините их в другом порядке, вы, безусловно, должны ожидать, что сумма MD5 будет другой.
Если вы объедините их в одном и том же порядке, биты будут одинаковыми, и вы получите ту же сумму md5. Если биты не совпадают, это, вероятно, означает, что у вас плохая память. Смотрите memtest86 .
Я думаю, это из-за того ls -t
, что вы сортируете по времени, так что последний перед первым в файле resamble
Потому что вы не соединяете их в том же порядке, в котором они начали. Вы правы, если вы правильно их соберете, 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.
Каким-то образом некоторые фрагменты были повреждены, переупорядочены, добавлены или удалены в процессе разделения и объединения.