2009年1月7日水曜日

Ubuntuで重複ファイルを削除する

 ネットで画像ファイルをどんどん保存しまくっていくと、いつしか以前保存した画像をまた保存していて、同じようなファイルが複数溜まっていく・・・なんてことはよくあることです。
 チリも積もればなんとやら。画像フォルダの重複ファイルを調べていたらなんと555ファイルもあり、95Mにもなっていました。あまりよろしくないですよね。
 ということで今回は重複ファイルの整理方法。

fdupes というツールを使います。fdupes は指定されたディレクトリを検索し、ファイルサイズとmd5ハッシュ値で比較し、重複したファイルがあれば、それを表示してくれます。大変コンパクトで高速な素晴しいソフトです。

インストール

sudo apt-get install fdupes

使い方

重複ファイルを探し出す
fdupes -r ~/MyPicture/
~/MyPicture/ 以下を再帰的に検索して重複したファイルを表示します。
重複した余分なファイルを削除する
 重複したファイルを少しなら、-d オプションで逐一操作してもいいのですが、量が多いとなると大変です。そこで、削除するファイルのリストを掃き出させ、そのリストを rm コマンドに食わせるというやり方でいきます。

  • リストを作る。
    fdupes -rf ~/MyPicture/ | sort | uniq | grep -v '^$' > remove.lst
     これで削除すべき余分なファイルのリストが出来あがりました。

  • 実際に削除する
    while read file; do rm -v "$file"; done < remove.lst
     remove.lstから一行づつ読み込まれて削除されていきます。
     いきなり rm で削除は不安という場合は rm を trash に置き換えでもいいでしょう。

2 件のコメント:

匿名 さんのコメント...

fdupes -rf ~/MyPicture/ | xargs rm -rf とか?

匿名 さんのコメント...

fdupes -rfd ~/MyPicture/
ファイル選択Promptが出ました。