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

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

ディレクトリをバイナリファイルと比較したいです。実際、私はファイル間の実際の違いに興味があるのではなく、違いがあるか(そしてどのファイルが違うのか)に興味があります。以前これを使用したことがありますが、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/

(各ファイルに対していくつかの出力を取得できるため、「同じディレクトリ」は必要ありません)

関連情報