이름에 관계없이 주어진 디렉토리에 정확히 동일한 내용을 가진 2개의 파일이 존재하는지 확인 [중복]

이름에 관계없이 주어진 디렉토리에 정확히 동일한 내용을 가진 2개의 파일이 존재하는지 확인 [중복]

명령줄에서 일련의 명령을 사용하여 문제를 해결할 수 있다면 스크립트를 작성하는 것보다 낫습니다.

답변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}'

관련 정보