重複ファイルの削除

重複ファイルの削除

私のMac OS X 10.6.7では、iTunesは私の音楽ライブラリのすべてのファイルをコピーしました。現在、1,920個ではなく3,840個のファイルがあります。問題は、iTunesが単にフォルダ全体をコピーするのではなく、各フォルダ内のすべてのファイルをコピーして1コピーに追加することです。

├── album1
│   ├── track1.mp3
│   ├── track1 1.mp3
│   ├── track2.mp3
│   └── track2 1.mp3
└── album2
    ├── track1.m4a
    └── track1 1.m4a

1,920個の重複エントリをクリックする代わりに、端末にいくつかのスマートラインを入力して重複ファイルを削除したいと思います。

find path/to/music/ -name "* 1.*" -delete

これはほとんどの場合機能しますが、次の状況では問題が発生する可能性があります。

└── album2
    ├── track 1.mp3
    └── track 1 1.mp3

"* 1 1.*"後でこのファイルを除いて名前を変更し、重複したファイルを削除する必要がありますか1

どうすればいいですか?

簡単な解決策はありますか?

ベストアンサー1

私もこれを正常に見つけて削除するために追加します。精密ファイルが重複しています。ハッシュ値でファイルを比較する必要があります。

#!/bin/sh -eu
find "${1:-.}" -type f ! -empty -print0 | xargs -0 md5 -r | \
    awk '$1 in a{sub("^.{33}","");printf "%s\0",$0}a[$1]+=1{}' | \
    xargs -0 rm -v --

別の名前で保存してdeldupes.sh実行し、ディレクトリ名を最初の引数(それ以外の場合は$PWD使用)に渡します。

OS Xでテストされ、長い空白のファイル名で動作します。

おすすめ記事