해시별로 OSX에서 파일 중복 검색


14

OSX (Maverick이지만 더 일반적으로 OSX)에서 결정 파일을 검색하는 방법을 찾고 있습니다. 특히 다음을 수행하고
싶습니다. File_001이 주어지면 파일 시스템 에이 파일의 사본이 있는지 검색하고 싶습니다.
이름이 같을뿐만 아니라 비교 방법을 MD5, SHA 등과 같은 해싱 알고리즘으로 만들고 싶습니다.

"복제 파일 찾기"의 대부분은 드라이브 / 시스템에서 모든 중복을 검색하려고 시도했습니다. 대신 하나의 파일을 제출하고 중복 파일을 검색하는 데 관심이 있습니다.

그러한 프로그램이 존재하는지 아는 사람이 있습니까? 어쩌면 Spotlight의 모호한 기능이 있습니까?


1
주어진 파일이 사본인지 판별하는 해시에주의하십시오. 예를 들어이 접근 방식은 .emlx 파일 (Apple Mail의 파일 형식)로 실패 할 수 있습니다. Spotlight를 돕기 위해 OSX는 메타 데이터를 메일 파일에 추가합니다. Message-id가 동일하더라도 서로 다른 두 경로의 동일한 전자 메일에 다른 메타 데이터가있을 수 있습니다. 정확히 동일한 원시 이메일을 포함하는 두 파일에 대한 다른 해시.
John D.

답변:


17

을 사용할 수도 있습니다 fdupes. 특정 파일의 중복을 검색하는 옵션은 없지만 파일 이름에 대한 출력을 grep 할 수 있습니다.

fdupes -r1 .|grep filename

-r디렉토리로 돌아가서 -1각 중복 파일 그룹을 한 줄에 인쇄합니다.

다른 유용한 예 :

fdupes -r . 현재 디렉토리에서 모든 중복 파일을 찾습니다.

fdupes -r . -dN 각 복제 그룹에서 첫 번째 복제를 제외한 모든 것을 삭제합니다.

fdupes -r dir1 dir2|grep dir1/|xargs rm에서 중복을 제거합니다 dir1.

당신은 설치할 수 있습니다 fdupesbrew install fdupes.


현재 디렉토리에 중복되지 않은 파일 목록을 가질 수 있습니까?
가가린

7

몇 가지 쉘 명령을 사용하여 쉽게 직접 만들 수 있습니다.

  • find ~ -type f -exec md5 -r '{}' \; > /tmp/md5.list

    모든 파일에 md5 해시 목록을 작성합니다.

  • grep $(md5 -q FILE-TO-SEARCH) /tmp/md5.list

    FILE-TO-SEARCH의 md5 해시를 검색합니다.

첫 번째 명령을 실행하면 (특히 전체 디스크에서 실행하는 경우) 시간이 오래 걸립니다.


하나의 파일 만 검색하려면 다음을 사용할 수도 있습니다.

SIZE=$(stat -f '%z' FILE-TO-SEARCH)
MD5=$(md5 -q FILE-TO-SEARCH)
find ~ -type f -size ${SIZE}c | while read f; do
    [[ $MD5 = $(md5 -q "$f") ]] && echo $f
done

첫 번째 패스는 정확한 크기 작업으로 찾아야합니다.
biziclop

@biziclop 하나의 파일 만 검색하려면 예. 여러 항목을 검색하려면 색인을 한 번 작성하고 나중에 색인 파일을 검색하는 것이 더 빠릅니다.
nohillside

1
물론, 나는이 질문에서 다음과 같은 문장을 보았습니다. "대신 파일 하나를 제출하고 그 사본을 검색하는 데 관심이 있습니다."
biziclop

fdupes는 먼저 날짜 비교, 부분 해시, 전체 해시를 수행하는 것이 더 빠릅니다.
가가린

1

FILE_001의 크기와 해시를 명령으로 대체하면 작동합니다.

198452 바이트는 내가 사용한 파일 크기이고 파일 md5 해시는 3915dc84b4f464d0d550113287c8273b입니다.

find . -type f -size 198452c -exec md5 -r {} \; |
    grep -o "3915dc84b4f464d0d550113287c8273b\ \(.*\)" | awk '{print $2}'

출력은 find 명령으로 전송 된 디렉토리에 상대적인 경로 이름을 가진 파일 목록이됩니다.

이 방법은 원본의 크기와 일치하는 파일 만 해시하고 해시와 일치하는 파일 이름 만 출력한다는 이점이 있습니다.


0

스크립트를 엉망으로 만들지 않으려면 Mac App Store 에서 Araxis Find Duplicate Files $ 10을 사용하여 원하는 동작에 가까이 갈 수 있습니다 . 그들의 웹 사이트에는 7 일의 데모도 있습니다. 중복 파일 찾기는 각 파일의 해시를 계산하여 듀피를 검색합니다.

관심있는 단일 파일로 폴더를 설정하려는 동작을 근사한 다음 검색하려는 폴더를 추가 할 수 있습니다. 검색 경로에 다른 속임수가 있으면보고합니다.

이 응용 프로그램에는 결과를 매우 쉽게 이해할 수 있도록 많은 멋진 정렬 기능이 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.