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スクリプトディレクトリを比較するために使用されます。