ファイルの内容の違いを確認せずに、ディレクトリを他のコンテンツのダイジェストと繰り返し比較します。

ファイルの内容の違いを確認せずに、ディレクトリを他のコンテンツのダイジェストと繰り返し比較します。

2つのディレクトリの内容を再帰的に比較して、どのファイルがどのディレクトリにないのか、どのファイルが異なる内容を持っているのかを見たいと思います。しかし、ファイル内の違いを出力したくありません。ファイルが異なるかどうかを出力したいだけです。気になるリンクはありません。

重複した内容ではないことを願っています。例を見てみましたが、答えが見つかりませんでした。ありがとう

答え1

一般的に、この程度で十分に見えます。

diff -rq dirA dirB

答え2

残念ながらdiff -rq考慮されていませんUnicodeに対応ファイル名に。 SanDisk外付けSSDは、Macノートブックとは異なるUnicodeファイル名のバイトコードを使用するため、問題が発生します。

たとえば、私のMacBookには次のファイルがあります。

tmp/Česky.txt
tmp/Česky/README.txt

私のSSDには次のものがありますまったく同じ文書:

/Volumes/MySSD/Česky.txt
/Volumes/MySSD/Česky/README.txt

名前はブラウザでまったく同じように見えますが、私のコンピュータでは実際には異なります。 Pythonでさまざまなバイトコードが与えられた場合:

# python3
>>> 'Česky'.encode()
b'C\xcc\x8cesky'
>>> 'Česky'.encode()
b'\xc4\x8cesky'

私が実行すると、diff -rq tmp/ /Volumes/MySSD/次のようになります。

Only in /Volumes/MySSD/: Česky
Only in /Volumes/MySSD/: Česky.txt
Only in tmp/: Česky
Only in tmp/: Česky.txt

このファイルをラップトップから外付けドライブにコピーしても!ファイルの内容は同じです。

同じ問題を回避するには、次のものを使用できます。このPythonスクリプトディレクトリを比較するために使用されます。

関連情報