フォルダーAのすべてのファイルがフォルダーBに存在することを確認するにはどうすればよいですか?


1

私はハードドライブ上のいくつかのファイルを再編成し、フォルダの古いコピーを持っています。私がしたいのは、フォルダAのすべてのファイル(古いコピー)がフォルダBに存在することを確認することです。各フォルダには少なくとも200個のファイルが含まれ、そのほとんどはおそらく重複しています。

警告:ファイル名だけをチェックすることはできません。ファイル名が同じであることも確認する必要があります(アラfdupes)。

私はマンページをチェックfdupesして、逆の操作を行う方法があるかどうかを確認しました(つまり、どのファイルにコピーがないかを把握します)が、機能が存在する場合でも手ぶらで立ち上がって、フォルダBにのみ存在するファイルがまだあります。

これらの2つの質問は似ていましたが、Windowsのみでしたのであまり役に立ちません。

前もって感謝します。


fdupesインストールしていません。重複ファイルのリストを作成しますか?
チョロバ

@chorobaはい:)
erb

回答:


1

重複ファイルのリストがすでにある場合は、それをすべてのファイルのリストと比較して、単一のファイルを見つけます。

fdupes -r dir1 dir2 | grep -vwFf- <(find dir1 dir2 -type f)
  • -w単語全体を計算します(部分文字列でabcdはないため、ファイルはに一致しませんabc
  • -F パターンを正規表現ではなくリテラルと見なします
  • -f指定されたファイル(-この場合は標準入力)を、一致する式のリストとして使用します。
  • -v おそらくご存知のとおり、一致しない行が表示されます。

これにより、フォルダーの1つでのみ見つかったファイルを含むリストが出力されます。次のようにフォルダーAの名前をスキミングまたはgrepすることで、すべてがフォルダーBにあることを簡単に確認できますdir1

fdupes -r dir1 dir2 | grep -vwFf- <(find dir1 dir2 -type f) | grep -F dir1

驚いたことに、-rフラグをに追加するだけでfdupes、投稿が再帰されるように編集しました。ありがとう!
erb
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.