중복 제거를 수행하는 Windows 용 압축 또는 아카이버 프로그램이 있습니까? [닫은]


12

보관중인 파일에 대해 중복 제거 (중복 제거)를 수행 할 수있는 아카이버 프로그램을 찾고 있습니다. 아카이브 압축을 풀면 소프트웨어는 압축 과정에서 제거 된 파일을 모두 다시 넣습니다.

지금까지 나는 발견했다 :

다른 사람을 아는 사람이 있습니까?

이것은 아마도 7-zip에 대한 훌륭한 추가 일 것입니다.

답변:


12

현대의 거의 모든 아카이버가 정확히이 작업을 수행하지만, 유일한 차이점은 압축 알고리즘에 공급되기 전에 모든 파일이 단일 스트림으로 연결되어 있기 때문에이 파일을 "솔리드"아카이브라고합니다. 이는 각 파일을 하나씩 압축하고 각 압축 파일을 아카이브에 추가하는 표준 zip 압축과 다릅니다.

본질적으로 7-zip은 중복 제거를 효과적으로 달성합니다. 예를 들어 7-Zip은 파일을 검색하고 유사한 파일 형식과 파일 이름으로 정렬하므로 동일한 형식과 데이터의 두 파일이 압축기 알고리즘으로 이동하는 스트림에 나란히 배치됩니다. 그러면 압축기는 최근에 본 많은 데이터를 볼 수 있으며이 두 파일은 파일을 하나씩 압축하는 것과 비교하여 압축 효율이 크게 향상됩니다.

tar는 단순히 모든 파일을 단일 스트림으로 병합하기 때문에 (. 파일을 정렬하고 그룹화 한 후 gzip으로 압축합니다. 이것이 누락 된 것은 7-zip이 정렬하는 것입니다. 효율성이 약간 떨어질 수 있지만 압축 방식으로 압축 된 많은 개별 파일을 함께 처리 하는 것보다 여전히 낫습니다 .


매일 새로운 것을 배우십시오. zip이 각 파일을 개별적으로 압축한다는 것을 알지 못했지만 내 컴퓨터에서 몇 가지 테스트를 실행 한 후에는 실제로 정확하다는 것을 알았습니다. 매우 흥미로운, 감사합니다!
CenterOrbit

7ip은 중복 제거의 공정한 작업을 수행하지만 중복되지 않은 데이터를 효율적으로 압축하고 많은 CPU와 메모리를 사용하여 데이터를 중복 제거하는 매우 비효율적 인 방법입니다. 두 개의 동일한 100MB 파일을 압축하면 첫 번째 파일을 효율적으로 압축하고 압축하는 데 많은 문제가 발생하며 (사전 크기가 충분히 큰 경우) 두 번째 파일을 첫 번째 파일의 복제본으로 압축하십시오.
mwfearnley

gzip을 사용 .tar.gz하면 한 번에 900KB와 같이 상대적으로 작은 블록 만 서로 완전히 독립적으로 압축하지 않으므로 두 개의 크지 만 동일한 파일 (예 : 몇 개의 4MB 이미지)을 중복 제거 할 수 없습니다.
binki

예를 들어, 7z는 큰 파일을 중복 제거 할 수 있었지만 gzip은 그렇지 않았습니다. gist.github.com/binki/4cf98fb4f1f4aa98ee4a00edaf6048fa
binki

흥미로운 접근 방식은 '자식 추가'파일이며, 다음 .git 폴더에 압축
beenotung

4

압축 프로세스와 함께 중복 제거를 사용할 필요는 없습니다. 대부분의 압축 알고리즘은 가장 일반적이거나 재사용되는 데이터 비트를 찾는 '사전'을 만듭니다. 거기에서 전체 "단어"를 다시 쓰는 대신 사전 항목을 참조합니다. 이러한 방식으로 대부분의 압축 프로세스는 이미 모든 파일에서 중복 또는 중복 데이터를 잘라냅니다.

예를 들어 1MB 파일을 가져와 매번 다른 이름으로 100 번 복사하면 (총 100MB의 디스크 공간) 7zip 또는 zip 파일로 압축하면 총 1MB의 zip 파일이 생성됩니다. 모든 데이터가 하나의 사전 항목에 입력되고 100 번 참조되기 때문에 공간이 거의 필요하지 않기 때문입니다.

이것은 일어나는 일에 대한 매우 간단한 설명이지만 요점은 여전히 ​​잘 전달됩니다.


1
사전 크기는 대부분의 압축 아카이브에 대해 매우 제한되어 있으므로 일상적인 사용에는 유효하지 않습니다. 50MB 파일로이 작업을 시도하면 압축 된 크기가 두 개의 동일한 입력 파일로 두 배가됩니다.
Chaos_99

1
7zip 파일과 달리 Zip 파일은 파일 간 중복 제거를 지원하지 않습니다. Zip 파일은 각 파일을 개별적으로 압축하여 저장하므로 중복 파일은 아카이브에 여러 번 저장됩니다.
mwfearnley

1
7zip은 파일 간 중복 제거를 지원하지만 훨씬 짧은 일치 항목을 찾아 압축하도록 설계되었습니다. 이 알고리즘은 대규모 데이터 복제를 찾기 위해 설계된 것보다 훨씬 느리고 메모리를 많이 사용합니다.
mwfearnley

4

7-Zip, zip, gzip 및 기타 모든 아카이버는 동일한 파일 내에서 몇 메가 바이트 이상과 같이 서로 멀리 떨어져 있거나 다른 파일 내의 다른 위치에있는 동일한 영역을 감지하지 못합니다.

따라서 일반 보관소는 일부 상황에서 발굴 및 다른 것만 큼 성능이 좋지 않습니다. 일부 가상 머신이나 다른 것들을 압축하면 이것을 볼 수 있습니다.


1
맞습니다. 고유 한 데이터 볼륨이 컴프레서 딕셔너리 크기를 초과하면 압축이 드레인으로 내려갑니다. exdupe는 대용량 데이터에 탁월한 성능을 제공합니다.
usr
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.