重複ファイルを消す

メールソフトの不具合で、過去のメールの半分くらいが二重になってしまいました。つまり、同じ内容のメールが二通ずつになってしまったのです。現行バージョンのApple Mailは1メール=1ファイルというシステムになっているので、ファイルのMD5かなんかを計算して、同じ値になったら一つだけを残して削除すればいい、ということを考えました。実装はRubyかなんかでやればいいや、と。ただ、一対比較を行う必要があるため、メールの数が10000個だったら、10000×(10000−1)÷2回の比較が必要です。全部で13万個以上のファイルがあったので、これは大変そうです。*1

どうしようかと思案していたのですが、Google検索したらDupScanというプログラムを見つけました。CRCを計算して、見つけたファイルを操作できるというもの。あぁ便利。このソフトをぶんまわして重複検知をした結果、13万個のファイルのうち4万個くらいは重複になっていました。中には4つもコピーがあったりして、驚きの結果。

メールボックスがだいぶとスリムになりました。車輪の再発明しなくてすんで良かった良かった。

*1:約84.5億回の比較が必要です