Одним из наиболее распространенных способов определения идентичности двух файлов (при условии совпадения их размеров) является использование программы для создания « хеша » (по сути, отпечатка пальца) файла. Наиболее распространенными являются md5sum
и sha1sum
.
Например:
$ md5sum file1 file2
e0e7485b678a538c2815132de7f9e878 file1
4a14aace18d472709ccae3910af55955 file2
Если у вас есть много файлов, которые необходимо проверить, например, если вы переносите каталог, полный файлов, из одной системы в другую, вы можете перенаправить вывод из исходной системы в файл, а затем md5sum
/ sha1sum
может автоматически использовать этот файл, чтобы сообщить вы какие файлы разные
$ md5sum file1 file2 > MD5SUMS
... copy file1, file2, MD5SUMS across
$ md5sum --check MD5SUMS
file1: OK
file2: OK
Нашел решение - инструмент cmp, который поставляется с большинством версий Linux.
источник
Если я просто хочу узнать, одинаковы ли они, я предпочитаю использовать sha1sum, если он доступен, или md5 в качестве запасного варианта.
Если я хочу узнать, насколько они различны или где они различаются, то единственное, что работает, - это запустить их через od («восьмеричный дамп», который обычно имеет шестнадцатеричную опцию), чтобы создать временные файлы, а затем разнести их.
источник
Я только что провел несколько тестов для файла размером более 100 МБ. diff был самым быстрым, в то время как cmp был вторым, а использование md5sum - последним.
Я перезапустил упражнение с файлом 4,3 ГБ, и мне пришлось удалить и заново создать файл с помощью dd, поскольку кэширование в ОЗУ сильно влияло на результаты.
Основываясь на этих результатах, я бы порекомендовал переместить файлы в монтирование RAMFS и придерживаться diff.
источник