コマンドラインで一連のコマンドを使用して問題を解決できる場合は、スクリプトを書くよりも優れています。
答え1
for x in *; do for y in *; do [ "$x" = "$y" ] && continue; cmp -s "$x" "$y" && echo Same: "$x" and "$y"; done; done|head -1
または、読みやすくするために少し分けた場合は、次のようになります。
for x in *
do
for y in *
do
[ "$x" = "$y" ] && continue
cmp -s "$x" "$y" && echo Same: "$x" and "$y"
done
done | head -1
これはhead
、単にミラーレポートを中断状態に保つためのものです(「a = b」と「b = a」)。
答え2
find . -type f -exec md5sum "{}" \; | awk 'seen[$1] { print "Duplicate file "$2" with hash "$1" at "seen[$1]" } ! seen[$1] {seen[$1]=$2}'