web-dev-qa-db-ja.com

重複ファイルを検索(および削除)する方法

膨大な音楽コレクションがあり、そこにいくつかの複製があります。重複ファイルを見つける方法はありますか。少なくとも、ハッシュを実行し、2つのファイルが同じハッシュを持っているかどうかを確認します。

拡張子を除いて同じ名前のファイルを見つけることのボーナスポイント-mp3とoggの両方のバージョンの曲がいくつかあると思います。

それが最も簡単な方法であれば、コマンドラインを使用してうれしいです。

125
Hamish Downer

これにはfdupesを使用します。 Sudo apt install fdupesを使用してリポジトリからインストールできるコマンドラインプログラムです。 fdupes -r /dir/ect/oryのように呼び出すと、重複のリストが出力されます。 fdupesには simple HomepageWikipediaの記事 もあり、さらにいくつかのプログラムがリストされています。

138
qbi

FSlint にはGUIとその他の機能があります。 FAQからの重複チェックアルゴリズムの説明:

1. exclude files with unique lengths
2. handle files that are hardlinked to each other
3. exclude files with unique md5(first_4k(file))
4. exclude files with unique md5(whole file)
5. exclude files with unique sha1(whole file) (in case of md5 collisions).

fslintInstall fslint

61
Dominik

programs/scripts/bash-solutionsのリスト。重複を見つけてnixの下で実行できます。

  1. dupedit:多くのファイルをチェックサムなしで一度に比較します。複数のパスが同じファイルを指している場合に、ファイルをそれ自体と比較することを避けます。
  2. dupmerge:さまざまなプラットフォームで実行(Cygwin、* nix、LinuxなどのWin32/64)
  3. dupseek:読み取りを減らすために最適化されたアルゴリズムを備えたPerl。
  4. fdf:Perl/cベースで、ほとんどのプラットフォーム(Win32、* nixなど)で実行されます。 MD5、SHA1、およびその他のチェックサムアルゴリズムを使用
  5. freedups:指定したディレクトリを検索するシェルスクリプト。 2つの同一のファイルが見つかると、それらを相互にハードリンクします。これで、2つ以上のファイルがそれぞれのディレクトリに存在しますが、ディスクにはデータのコピーが1つだけ保存されます。両方のディレクトリエントリは同じデータブロックを指します。
  6. fslint:コマンドラインインターフェイスとGUIがあります。
  7. liten:純粋なPython重複排除コマンドラインツール、およびライブラリ、md5チェックサムと新しいバイトを使用比較アルゴリズム。 (Linux、Mac OS X、* nix、Windows)
  8. liten2:元のLitenの書き直し、まだコマンドラインツールですが、SHA-1チェックサムを使用したより高速なインタラクティブモード(Linux、Mac OS X、* nix)
  9. rdfind:入力パラメータ(スキャンするディレクトリ)の順序に基づいて重複しないようにランク付けする数少ないものの1つ「オリジナル/よく知られている」ソースで削除します(複数のディレクトリが指定されている場合)。 MD5またはSHA1を使用します。
  10. rmlint:コマンドラインインターフェイスと他のリントを見つけるための多くのオプションを備えた高速ファインダー(MD5を使用)
  11. a:Unix/Linuxコマンドラインツール。find(など)で動作するように設計されています。
  12. findrepe:重複ファイルの効率的な検索のために設計された無料のJavaベースのコマンドラインツール。zipおよびjars(GNU/Linux、Mac OS X、* nix、Windows)
  13. fdupe:Perlで書かれた小さなスクリプト。その仕事を迅速かつ効率的に行う。 1
  14. ssdeep:Context Triggered Piecewise Hashingを使用してほぼ同一のファイルを識別
55
v2r

重複排除タスクが音楽に関連している場合は、最初に picard アプリケーションを実行して、音楽を正しく識別してタグ付けします(名前が間違っていても重複する.mp3/.oggファイルを見つけるため)。 picardはUbuntuパッケージとしても利用できることに注意してください。

musicip_puidタグに基づいて、重複したすべての曲を簡単に見つけることができます。

6

このジョブを実行する別のスクリプトは、 rmdupe です。著者のページから:

rmdupeは、標準のLinuxコマンドを使用して、ファイル名や拡張子に関係なく、指定されたフォルダー内で重複ファイルを検索します。重複する候補が削除される前に、バイトごとに比較されます。 rmdupeは、1つまたは複数の参照フォルダーに対して重複をチェックしたり、ファイルを削除する代わりにゴミ箱に入れたり、カスタムの削除コマンドを許可したり、指定したサイズのファイルに検索を制限したりできます。 rmdupeには、実際にファイルを削除せずに特定のコマンドに対して実行されることを報告するシミュレーションモードが含まれています。

4
girardengo

やってみました

finddup

または

finddup -l

私はそれがうまくいくと思います。

3
xerostomus

音楽関連の重複識別と削除の場合、PicardとJaikozによる http://musicbrainz.org/ が最適なソリューションです。 Jaikozは、曲ファイルのデータに基づいて音楽に自動的にタグを付けると考えています。曲を識別し、すべてのメタデータを割り当てるために、曲の名前さえ必要ありません。無料版では1回の実行でタグ付けできる曲の数には制限がありますが、必要な回数だけタグを実行できます。

2
Yathi

komparator -Sudo apt-get install komparatorbuntu 10.04 + )-手動モードで重複を見つけるためのGUIツールとして使用します。

2
N0rbert