web-dev-qa-db-ja.com

ディレクトリとバイナリファイルを比較する方法

ディレクトリとバイナリファイルを比較したいのですが。実際、私はファイル間の実際の違いが何であるかには興味がありませんが、違いがあるかどうか(そしてどのファイルが違うか)を知りたいのです。以前はmeldを使用していましたが、バイナリファイルを比較することはできません。

そのようなファイル比較ツールはこれを何ができますか?

注:それがグラフィカルツールであるか、コマンドラインだけであるかは関係ありません。

7
Loom

これは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/ディレクトリにバイナリファイルが含まれており、bash2foo/にのみ存在します。

したがって、次のような単純なものを実行できます。

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

異なるファイルがある場合はそれが表示され、同じ場合は「ディレクトリの内容が同一」と表示されます。サブディレクトリとそれらに含まれる可能性のあるファイルを比較するには、diff -rを使用します。 -qと組み合わせて、テキストファイルの出力を抑制します。

11
terdon

cmpコマンドを使用して2つのファイルを比較できます

用途:

cmp file1 file2

それは数バイトの違いと行番号を与えます

1
Yogeesh H T