Для сравнения бинарных файлов можно воспользоваться командами:
diff -u <(od -A x -t x1 ref.bmp) <(od -A x -t x1 orig.bmp)
или
diff <(xxd orig.bmp) <(xxd ref.bmp)
Что делают эти команды? Сначала выводится содержимое файлов в HEX-виде с помощью команд od или xxd. А потом через diff сравнивается уже это HEX-представление.
Традиционно, если различий нет, команда diff закончится молча, без вывода каких-либо сообщений.
Однако надо понимать, что большие файлы (около 2 GB) таким способом сравнить невозможно, как минимум на 32-х битных системах. Будет появляться ошибка:
diff: память исчерпана
Причем, судя по htop, память не расходуется. Это какие-то внутренние ограничения толи diff, толи od, толи xxd, толи механизма потока. Как обойти эту проблему - не знаю.
Вместо команды diff можно воспользоваться командой cmp:
cmp -b -l file1 file2
683263 161 q 150 h
683264 222 M-^R 377 M-^?
683265 212 M-^J 354 M-l
Программа cmp способна нормально работать с большими файлами. Она показывает адрес байта и два значения - в первом и втором файле.
Для интерактивного сравнения можно воспользоваться программой vbindiff.