
ディレクトリをバイナリファイルと比較したいです。実際、私はファイル間の実際の違いに興味があるのではなく、違いがあるか(そしてどのファイルが違うのか)に興味があります。以前これを使用したことがありますが、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
同じ、異なる、1つまたは別のフォルダまたはサブフォルダにのみ表示される完全な比較:
diff -rqs bar/ foo/
(各ファイルに対していくつかの出力を取得できるため、「同じディレクトリ」は必要ありません)