重複ファイルを見つけるためのLinuxツール?


13

私は、非常に小さく(100バイト未満)な、大きく成長しているテキストファイルのセットを持っています。可能なファイルの各ペアを比較し、重複していることに注意してください。これを行うためにPythonスクリプトを書くことはできますが、これを行う既存のLinuxコマンドラインツール(またはツールの単純な組み合わせ)があるのだろうか?

更新mfinniコメントへの応答):ファイルはすべて単一のディレクトリにあるため、ファイル名はすべて異なります。(しかし、それらはすべて共通のファイル名拡張子を持っているため、ワイルドカードを使用してすべてを簡単に選択できます。)


ファイル名は重複ではなく、内容のみであると仮定していますか?
mfinni

リンクより上のコンテンツを探している場合は、pixelbeat.org / fslintが役立ちます。:)
ラジャット

回答:


22

fdupesがあります。しかし、私は通常の組み合わせを使用しますfind . -type f -exec md5sum '{}' \; | sort | uniq -d -w 36


1
このバリエーションは私のために働いた:(find . -name "*.csv" | xargs md5sum | sort | uniq -D -w 34 私はuniq -Dを使用し、-execを見つけるためにxargsを好む。)
ダリルスピッツァー

+1私はfdupesを知らなかった、そのツールは非常に有用に見える。
ゾレダチェ

3
@Daryl:xargs空白のあるファイル名では、このように使用しても機能しませんが、使用-execしても機能します。の-type f追加の引数としてfind(と一緒に使用できます)を使用すると-name、検索がファイルに制限されます。
-fuenfundachtzig

fdupesの場合は+1。巨大なバイナリファイルでも高速であるため。
ベングト

まれに、xargsが動作しない(一定量の処理されたファイルの後にクラッシュする)がありますが、-exec wichが常に起動していません。@ fuenfundachtzig、xargs -0 --delimiter = "\ n"を使用してこれらの種類のファイルを処理できます。
ychaouche


3

ほとんどの場合、ファイルの各ペアを比較する必要はありません。おそらくmd5sumsのようなものを使用して、すべてのファイルのすべてのチェックサムを取得し、重複チェックサムのみを報告する他のツールにパイプする必要があります。


2
あるサイズのファイルに対してmd5sumを計算するだけで、そのサイズのファイルが複数ある場合、計算されるmd5sumの数を減らすことができます。そのため、バイト単位の一意のサイズのすべてのファイルについては、md5sumは必要ありません。何も複製できないためです。
tomsv
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.