
ディレクトリとバイナリ ファイルを比較したいと思います。実際、ファイル間の実際の違いが何であるかに興味があるのではなく、違いがあるかどうか (およびどのファイルが異なるか) を知りたいのです。以前は を使用しましたが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/
(ファイルごとに出力が得られるので、「ディレクトリが同一」である必要はありません)