バイナリレベルで再帰的にファイル群を比較したい

【前提条件】
・ファイルの構造が同一であるが、中身が多少異なるディレクトリ同士を比較したい
・仮に/tmp/aと/tmp/b配下の全てのファイルを比較したいとする

【コマンド】

cd /tmp/a
find . -type f -exec cmp '{}' /tmp/b/'{}' \;

【その他】
・テキストレベルで再帰的に比較したい

diff -r /tmp/a /tmp/b

・差異があるかどうかだけを比較したい

cd /tmp/a
find . -type f -exec sha512sum '{}' \; | sort > ../a.txt
cd /tmp/b
find . -type f -exec sha512sum '{}' \; | sort > ../b.txt
diff /tmp/a.txt /tmp/b.txt