違う名前だけれど、同じ内容のファイルがたくさんあるけれど
大量にありすぎて探すのが大変。
という時に便利なコマンドがある。
fdupes
デジカメや電話から写真をコピーした時、適当にコピーしたので大量に重複ファイルがでてしまったけれど、
これでだいぶ削除で来た。
これの仕組みだけれども、MD5でハッシュ値を生成してそれを比較しているらしい。
ハッシュ値というのは長い値を短く要約した値で、
1bitでも違うと全く違う数値に変換される。
使い方
インストール(Ubuntu)
リポジトリに登録されているので、apt-getでインストールすればOK
sudo apt-get install fdupes
使い方の例
fdupes -r ./directory/
これで再帰的に指定したディレクトリの中身を調査して、重複しているファイルを標準出力に表示してくれる。
fdupes -rd ./directory/
これをやるとさっき再帰的に検索した重複ファイルを削除するんだけれども、
重複ファイル中どのファイルを保存するか聞かれる。一気に削除するには不向き
fdupes -fr ./directory/
-fをつけると、最初に検索されたものは除外される。
-rだけで検索した場合だと、ディレクトリに重複しているファイルが全部で5個あったとしたら、
-frにすると4個だけ出力される。
じゃあ、きっと-fをつけて、保存するファイルを選ぶプロンプトを非表示にして
-dをつければ一気に重複ファイルを片付けることができるかも
fdupes -frdN ./directory/
というわけでこれを試してみたら、確かに一個だけファイルが残った。
ただ、重複されているファイルを問答無用で削除し、どこのフォルダのファイルが残るのかは保証されない。
だから、実行するときはフォルダのバックアップをとってからやったほうがいいかも。
あと、重要なファイルを削除してしまっても責任取れませんので、
一応無駄なファイルなどで動作を確認してからおこなってください。
重複ファイルをリスト化してそれをゴミ箱へ移す方法
こちらのブログで紹介されていたけれど、こっちのやり方のほうが安全だとおもうので
紹介しておきます。