중복된 이미지 파일 제거

중복된 이미지 파일 제거
[user@notebook foobar]$ ls *.jpg|wc -l
1959
[user@notebook foobar]$ cksum * | cut -d' ' -f-2 | sort | uniq -di | wc -l
698
[user@notebook foobar]$ 

한 디렉토리에 많은 jpg 파일이 있습니다. 많은 파일이 중복되지만 동일한 cksum이 있는지 알아낼 수 있습니다. 때로는 동일한 사진에 2~3개의 파일이 있는 경우도 있습니다.

묻다:원하지 않는 중복을 제거하는 방법은 무엇입니까?

각 사진에서 1장씩 남겨야 하는데, 완전히 똑같지만 파일명이 다른 사진이 3장 있다면,그 중 하나만 지켜야 한다, 중복된 사진이 나타나지 않게 하려면 어떻게 해야 하나요?

답변1

Fdupes를 사용하십시오:

fdupes -dN .

남자 친구:

   -d --delete
          prompt user for files to  preserve,  deleting  all  others  (see
          CAVEATS below)

   -N --noprompt
          when  used  together  with  --delete, preserve the first file in
          each set of duplicates and delete the others  without  prompting
          the user

답변2

이 스크립트는 bash의 연관 배열을 사용하여 체크섬을 보관한 다음 중복 항목을 보고합니다. 괜찮아 보인다면 다음과 echo같이 변경하세요(편집증이 심하다면 다음과 같이 변경하세요).rmrm -i

#!/usr/bin/env bash
declare -A sums
for f in *
do
  if [[ ! -f "$f" ]]; then continue; fi
  c=$(cksum "$f" | awk '{print $1}')
  [[ -n "${sums[$c]}" ]] && echo "# rm \"$f\" -- duplicate of ${sums[$c]}"
  sums[$c]="$f"
done

관련 정보