파일 중복 제거 방법


10

여러 컴퓨터에서 파일을 백업하고 보관하고 싶습니다. 불행하게도, 파일은 동일한 파일이지만 다른 시스템에 다르게 저장되는 일부 큰 파일을 가지고 있습니다. 예를 들어 한 대의 컴퓨터에서 다른 컴퓨터로 임시 백업으로 복사 된 사진 수백 장이있을 수 있습니다. 파일의 공통 저장소를 만들고자하므로 동일한 사진의 여러 사본을 원하지 않습니다.

이 모든 파일을 단일 디렉토리에 복사하면 중복 파일을 통해 인식하고 목록을 제공하거나 복제본 중 하나를 삭제할 수있는 도구가 있습니까?


답변:


3

각 파일의 md5sum을 작성하십시오. md5sum은 중복 파일을 제안하지만 보증하지는 않습니다.


1
그러나 그들은 "제안"을 강력하게 제안합니다. :) ... 그리고 파일의 크기가 같으면 제안이 정확할 가능성이 매우 높습니다.
Warren

2

dupemerge 를 사용 하여 동일한 파일을 하드 링크로 전환 할 수 있습니다 . 그것은 걸릴거야 아주 오랜 시간이 비록 큰 파일 세트. 파일의 SHA (또는 MD5) 해시는 거의 확실하게 작동하지만 복제본을 찾는 데 더 많은 노력을 기울여야합니다. 우발적 인 충돌 가능성은 너무 낮아 실제로 무시할 수 있습니다. 실제로 많은 중복 제거 제품이 이미이를 수행하고 있습니다.

사진과 음악을 다루는 가장 좋은 방법은 특히 해당 항목의 복제본을 찾도록 맞춤화 된 도구를 얻는 것입니다. 특히 태그 지정 또는 자르기 또는 인코딩 차이와 같은 항목이 재생 된 후 이진 수준에서 동일한 파일이 없을 수 있습니다. 파일을 약간 조정 한 경우에도 똑같이 "보이는"사진과 "소리 나는"음악을 찾을 수있는 도구가 필요합니다.


1
hardlink매우 빠른 (1.2M 파일, 320기가바이트 200 초가 소요)
마르셀 Waldvogel

1

글쎄, 당신이 능력이 있다면, 중복 제거 파일 시스템을 설정하고 그 위에 백업을 넣을 수 있습니다. 이것은 전체 파일뿐만 아니라 유사한 파일 조각을 중복 제거합니다. 예를 들어, 여러 곳에 동일한 JPEG가 있지만 각 버전에 다른 EXIF ​​태그가있는 경우 중복 제거 파일 시스템은 이미지 데이터를 한 번만 저장합니다.

중복 제거 파일 시스템에는 lessfs, ZFS 및 SDFS가 포함됩니다.


1
SDFS 또는 lessfs의 중복 제거에 대해서는 말할 수 없지만 ZFS의 중복 제거는 이와 같이 작동하지 않습니다. 블록 수준을 확인하므로 동일한 파일에 중복 제거 플래그가 지정되지만 헤더가 다른 파일은 그렇지 않습니다. 또한 ZFS 레코드 크기보다 작은 파일 (기본값은 128KB)을 단일 블록으로 묶을 수 있으므로 중복 제거의 이점을 얻지 못할 수도 있습니다.
notpeter

중복 제거 된 파일 시스템 (zfs 또는 btrfs)은 백업 호스트의 공간 만 절약합니다. 전송 된 데이터의 양을 저장하지 않습니다. 파일에 대한 일부 해시를 계산하여 백업 호스트로 보내는 것이 좋습니다. "있다"고 표시되면 해당 파일의 백업이 완료된 것입니다. 이것은 매우 비싼 (돈) 백업 소프트웨어에서 구현됩니다. 나는 오픈 소스에서 그것에 대해 들어 본 적이 없다. 그러나 아마도 그것은 현재 알고있을 것입니다. :)
Znik

@Znik rsync --link-dest은 읽기 / 전송도 절약하고 싶은 친구입니다. 간단한 소개는 다음과 같습니다. netfuture.ch/2013/08/…
Marcel Waldvogel

파일에 지정된 inode를 테스트하여 작동합니다. 그러나 중복 제거가 숨겨져있을 때 (예 : squashfs 파일 시스템), rsync는이를 확인할 수 없으며 동일한 데이터를 여러 번 전송합니다.
Znik

0

이런 종류의 일을 할 때 몇 주 동안 자유 시간에 파일을 실제로 직접 읽는 것이 훨씬 더 매력적이며 시간 효율적이라는 것을 알게되었습니다. 컴퓨터가 할 수있는 것보다 더 나은 점을 구별 할 수 있습니다.

동의하지 않으면 EasyDuplicateFinder를 제안 합니다 . 위에서 언급했듯이 5GB의 파일에는 약 하루가 소요됩니다.

그리고 Crashplan은 이전에하던 일을 훨씬 더 체계적이고 비버 전화 문제로 수행합니다.


0

백업 할 머신이이를 지원한다고 가정 할 때와 같은 다른 가능성이 있습니다 rsync.

당신이 만약 rsyncA로부터 B에, 다음 C에서 B로, 다음 D에서 등 B에, 정확한 중복 (즉, 파일 이름에 의해) 제거 될 것이다 (그리고 시스템이 백업하는 사이에 동기화).

그러나 서로 동기화하지 않으려면 이것이 최선의 방법은 아닙니다.


0

이미지 파일의 경우 findimagedupes를 사용 하십시오 . 또한 debian 패키지로 제공됩니다 .


findimagedupes는 사진 또는 그래픽 용이며, 한 형식에서 다른 형식으로 변환 될 수 있습니다. 사진 (i home)은 문제의 예일뿐입니다. 다른 큰 파일 일 수 있습니다.
Znik

0

하드 링크는 전체 파일이 동일한 경우에만 중복 제거를 수행합니다. 헤더 (EXIF, ID3,…) 또는 메타 데이터 (소유자)가 다르면 연결되지 않습니다.

블록 중복 제거 지원 (ZFS, btrfs 등)이있는 파일 시스템을 사용할 가능성이있는 경우이를 대신 사용하십시오. btrfs 의 오프라인 ( 일괄 처리 ) 중복 제거 지원을 매우 좋아 합니다. 이는 확장 수준 중복 제거를 지원하고 지속적으로 대량의 메모리를 소비하지 않습니다 (ZFS 온라인 중복 제거).

중복 제거는 또한 다른 사본 통지없이 사용자가 파일을 수정할 수 있다는 이점이 있습니다 (이 경우에는 적용되지 않지만 다른 경우에는 적용되지 않을 수 있음).

훌륭한 토론 은 https://btrfs.wiki.kernel.org/index.php/Deduplication 을 참조 하십시오 .

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