
2 つのフォルダーに 1:1 で同一のコンテンツが含まれているかどうかを知りたいです。これは、フォルダーのコピー/バックアップが一貫しているかどうかを確認したいためです。
どうすればそれができるでしょうか? 2 つのフォルダーをコンテンツの観点からすばやく比較するにはどうすればよいでしょうか?
答え1
フォルダを比較できるdiffツールが必要です。Windowsで最も人気のあるのはウィンマージ。
コマンドラインから操作できるものが必要な場合は、この答え。
アップデート
より具体的な答えは、可能な限り速く、また非常に柔軟に、シグウィンUnix コマンドライン ツールのバージョン:
diff -r dir1 dir2
ビルトインを使いたい場合はCOMP:
forfiles /P %folder1Path% /S /C "cmd /c comp /a @path %folder2Path%\@file"
ただし、これは面倒なので注意してください。まず、COMP は単一のフォルダーでのみ機能するため、再帰を自分で処理する必要があります (そのため行が長くなります)。また、最初の比較が行われた後にプロンプトが表示されます。
アップデート2
お勧めしませんこれをやる特定の状況でのみ高速化されるからです。他の状況では正しくないこともあります。より高速なバージョンを要求したので、ファイルの md5 チェックサムだけを比較することもできます。これには Cygwin を使用します。
diff <(sort <(md5deep -r /directory/1/) |cut -f1 -d' ') <(sort <(md5deep -r /directory/2/) |cut -f1 -d' ')
ただし、いずれにしてもホスト マシン上で実行されるため、帯域幅を節約できず、利点が疑わしいだけです。CPU 使用率が増加します。ただし、分解すると、保存時にのみファイルの md5 を作成し、必要な場合にのみ dif 部分を実行することができます。