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

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

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

どのようなファイル比較ツールでこれができるのでしょうか?

注記:グラフィカル ツールであるか、コマンド ラインのみであるかは関係ありません。

答え1

これは を使って簡単に実行できます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

答え2

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

使用法:

cmp file1 file2

バイト数の差と行番号が表示されます

答え3

完全な比較。同一、異なる、またはどちらか一方のフォルダーまたはサブフォルダーのみに表示されます。

diff -rqs bar/ foo/

(ファイルごとに出力が得られるので、「ディレクトリが同一」である必要はありません)

関連情報