![이름에 관계없이 주어진 디렉토리에 정확히 동일한 내용을 가진 2개의 파일이 존재하는지 확인 [중복]](https://linux55.com/image/147095/%EC%9D%B4%EB%A6%84%EC%97%90%20%EA%B4%80%EA%B3%84%EC%97%86%EC%9D%B4%20%EC%A3%BC%EC%96%B4%EC%A7%84%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EC%97%90%20%EC%A0%95%ED%99%95%ED%9E%88%20%EB%8F%99%EC%9D%BC%ED%95%9C%20%EB%82%B4%EC%9A%A9%EC%9D%84%20%EA%B0%80%EC%A7%84%202%EA%B0%9C%EC%9D%98%20%ED%8C%8C%EC%9D%BC%EC%9D%B4%20%EC%A1%B4%EC%9E%AC%ED%95%98%EB%8A%94%EC%A7%80%20%ED%99%95%EC%9D%B8%20%5B%EC%A4%91%EB%B3%B5%5D.png)
명령줄에서 일련의 명령을 사용하여 문제를 해결할 수 있다면 스크립트를 작성하는 것보다 낫습니다.
답변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}'