내 Windows 컴퓨터, 다른 하위 폴더 및 다른 파일 이름으로 많은 중복 이미지 파일이 있습니다.
중복을 제거하기 위해 어떤 Python 스크립트 또는 프리웨어 프로그램을 권장합니까?
(나는 읽었다. 이 비슷한 질문이지만, 포스터는 다른 파일 크기로 시각적 인 중복을 묻습니다. 내 파일 이름이 다른 파일과 중복됩니다.)
내 Windows 컴퓨터, 다른 하위 폴더 및 다른 파일 이름으로 많은 중복 이미지 파일이 있습니다.
중복을 제거하기 위해 어떤 Python 스크립트 또는 프리웨어 프로그램을 권장합니까?
(나는 읽었다. 이 비슷한 질문이지만, 포스터는 다른 파일 크기로 시각적 인 중복을 묻습니다. 내 파일 이름이 다른 파일과 중복됩니다.)
답변:
MD5 합계에 의존하지 마십시오.
MD5 합계는 중복을 확인할 수있는 신뢰할만한 방법이 아니며 차이점을 확인하는 유일한 방법입니다.
MD5를 사용하여 찾기 가능한 후보자 중복 된 다음 MD5를 공유하는 각 쌍에 대해
중복 아이덴티티 파일에 대한 순진한 접근 방식을 사용하는 사람들이 내가 싫어하는 것을보고 있습니다. 전적으로 SHA256 또는 SHA512와 같은 더 거친 무언가를 사용하면 해쉬 알고리즘에서 더 많은 비트를 검사함으로써 합리적인 수준으로 확률을 낮출 수 있습니다. MD5는 충돌 조건이 너무 약합니다.
또한 '파일 체크'라는 제목의 메일 링리스트를 읽는 사람들에게 조언합니다. http://london.pm.org/pipermail/london.pm/Week-of-Mon-20080714/thread.html
"MD5가 모든 파일을 고유하게 식별 할 수 있습니다"라고 말하면 논리 오류가 발생합니다.
길이가 40,000 바이트에서 길이가 100,000,000,000 바이트까지 다양한 값의 범위가 주어지면 해당 범위에서 사용할 수있는 조합의 총 수 매우 단순한 128 비트 길이의 MD5로 표시되는 가능한 값 수를 초과합니다.
2 ^ 128 조합만으로 2 ^ 100,000,000,000 조합을 나타냅니다? 나는 그렇게 생각하지 않는다.
중복을 제거하는 가장 순진한 방법과 가장 빠른 방법은 다음과 같습니다.
포듀 페스 이러다. 동일한 기준을 사용하는 소프트웨어를 사용해야합니다.
Cygwin이 설치된 유닉스 (Linux 포함) OS 또는 Windows와 같은 하나의 라이너입니다.
find . -type f -print0 | xargs -0 shasum | sort |
perl -ne '$sig=substr($_, 0, 40); $file=substr($_, 42); \
unlink $file if $sig eq $prev; $prev = $sig'
md5sum (약 50 % 빨라짐)은 고의적으로 생성 된 충돌이 없다는 것을 알고있는 경우 사용할 수 있습니다 (자연스럽게 발생하는 md5 충돌을 발견 할 기회보다 10 개의 주요 복권을 더 많이 얻을 수있는 기회가 더 많습니다).
당신이 그들을 제거하는 대신 가지고있는 모든 dups를보고 싶다면 unlink $file
~에 부분 print $file, "\n"
.
Windows에서 중복 이미지를 제거하려면 다음을 확인하십시오. DupliFinder. 이름, 크기 및 실제 이미지 정보와 같은 다양한 기준으로 사진을 비교할 수 있습니다.
중복 파일을 제거하는 다른 도구를 보려면이 Lifehacker를 살펴보십시오. 조.
대신 DupliFinder 대신 포크 프로젝트를 사용해보십시오. 데드 린저 . 원래 프로젝트에 많은 버그를 수정하고 새로운 기능을 추가하며 성능을 획기적으로 향상 시켰습니다.