今回はリサイクルネタです。 「ファイル名が違っても中身が同じファイルを探してくれる『NoClone』 | P O P * P O P」と 「404 Blog Not Found:perl - File::Find::Identical」にインスパイヤされた話ですが、 プログラム自体は数年前にPerlとmd5sumで書いて、 去年Pythonで書き直しました。 ダウンロードはこちら。
これは各ディレクトリにMD5CACHEというファイルを作って、 そこに各ファイルのMD5ハッシュを記録します。 そのことから、 同じファイル名で内容が変わってしまうと使えないという制限があります。
プログラムを実行すると、各ファイルにMD5ハッシュが紐付けられ、 MD5ハッシュが同じときにはファイルの内容が比較され、 内容も同じなら ~/Trash に移動するという動作です。
僕はどうやって使っているかというと、 毎日定期的にバックアップを取っているものに対して使います。 例えば hoge.2007-03.27.tar.bz2 とかいうファイル名で、 適当に固めてあります (gzipでなくbzip2を使うのもコツです。 gzipだと内容がファイル名の影響を受けますので)。 ところが内容が変わるのは数日に1回ですので、 重複するものがあれば削除した方がよいということになります。
Original Article: http://blog.fuktommy.com/1174991157