Как сравнивать каталоги с двоичными файлами

Я хотел бы сравнить каталоги с двоичными файлами. На самом деле, меня не интересуют, каковы фактические различия между файлами, но знать, есть ли различия (и какие файлы отличаются). Раньше я использовал meld , но он не может сравнивать двоичные файлы.

Пожалуйста, сообщите мне, какие инструменты сравнения файлов есть, что можно сделать.

ПРИМЕЧАНИЕ. Не имеет значения, является ли это графическим инструментом или имеет только командную строку.

Это легко сделать с помощью diff . Например:

 $ ls -l foo/ total 2132 -rwxr-xr-x 1 terdon terdon 1029624 Nov 18 13:13 bash -rwxr-xr-x 1 terdon terdon 1029624 Nov 18 13:13 bash2 -rwxr-xr-x 1 terdon terdon 118280 Nov 18 13:13 ls $ ls -l bar/ total 1124 -rwxr-xr-x 1 terdon terdon 1029624 Nov 18 13:14 bash -rwxr-xr-x 1 terdon terdon 118280 Nov 18 13:14 ls $ diff bar/ foo/ Only in foo/: bash2 

В приведенном выше примере в файлах foo/ и bar/ содержатся двоичные файлы, а bash2 – только в foo/ .

Итак, вы можете запустить что-то простое:

 $ diff bar/ foo/ && echo "The directories' contents are identical" 

Это покажет вам разные файлы, если они есть, или распечатать «Содержимое каталогов идентично», если они есть. Чтобы сравнить подкаталоги и любые файлы, которые они могут содержать, используйте diff -r . Объедините его с -q для подавления вывода текстовых файлов.

Вы можете сравнить два файла с помощью команды cmp

Применение:

cmp file1 file2

Он даст количество байтов и номер строки