rdfind
私は、または同じプログラムを知っていますfdupes
。似ていますが、より複雑な問題を解決します。
ファイルパスとディレクトリが与えられたら、ディレクトリを再帰的に検索して、他の名前、権限、または所有権に関係なく、ファイルのすべてのコピーを見つけたいと思います。
rdfind needle.file haystack/
たとえば、これを行うneedle.file
とhaystack
。
出力をフィルタリングできますが、出力が大きいとrdfind
不要haystack/
な操作がたくさん発生します。
scripts/cron-jobで使用する予定なので、コマンドラインアプリケーションが必要です。
ベストアンサー1
簡単な方法:
- ターゲットファイルをインポートして
md5sum
変数に保存 - ファイルサイズを取得して変数に保存します。
- 同じサイズのすべてのファイルで
find
実行md5sum
grep
find
目標MD5ハッシュ値の出力
target_hash=$(md5sum needle.file | awk '{ print $1 }')
target_size=$(du -b needle.file | awk '{ print $1 }')
find haystack/ -type f -size "$target_size"c -exec md5sum {} \; | grep $target_hash