2015-09-08 5 views
0

Я делаю это как на Windows (с Cygwin) и коробкой Linux:Рекурсивный md5sum отличается от окон и Linux

find DWH-R1.4.3/ -type f -print0 | sort -z | xargs -r0 md5sum | md5sum 

для того, чтобы получить последовательную md5sum для программного обеспечения-доставки. Но я получаю разные md5sums на каждой машине.

Я думал, что это может быть из-за новой строки, но поскольку я передал весь каталог как двоичный файл zip-файла, это выглядит не так. Я даже попробовал dos2unix после первого md5sum, он не изменил сумму. Любые идеи, как я могу использовать md5sum последовательно в этом случае?

Спасибо и касается

Chris

+2

Системы могут иметь разные локали, поэтому сортировка отличается, или md5sum может выводить пробелы в одной системе и вкладки с другой. Если вы сохраняете 2 списка файлов и сумм в файлы и запускаете diff на них, что он показывает? –

+0

Да, спасибо, жаль, что я не видел, что на Cygwin это ставит '*' перед именем файла: 272a1f8c702f33ec5ae15b36b679e7a9 * DWH-R1.4.3/ReleaseNotes и 272a1f8c702f33ec5ae15b36b679e7a9 DWH-R1.4.3/ReleaseNotes являются разные в конце-md5sum-вычислениях конечно ;-) Мне все еще нужно выяснить, почему это происходит на окнах, но сначала попробуйте вырезать * –

ответ

0

ОК, я отсортировано это сейчас: Linux и Windows, (Cygwin) версии своего рода разбирает разные: "" предшествует буквам в версиях Linux (что imho неверно, если мы смотрим таблицу ASCII). Я решил его не использовать имена файлов, я заинтересован в md5sum только так или иначе:

find DWH-R1.4.3/ -type f -print0 | xargs -r0 md5sum | awk '{ print $1 }' | sort | md5sum 

, кажется, работает хорошо :-)

BTW: Я использовал те же настройки локали на обоих.