2016-11-21 3 views
1

공간 절약을 위해 gzip으로 압축 된 동일한 파일 형식의 많은 수의 파일이 있습니다. 중복을 제거하기 위해 아카이브를 큐레이팅하고 있습니다.매우 구체적인 오프셋에서 .gz 파일 모음이 매우 작은 바이트 수로 손상됩니다.

상당한 수의 중복 파일 (gzip 한 파일 한 개, 일반 파일 한 쌍)의 경우, 작은 파일 오프셋 수 중 하나에서 시작하여 < 20 바이트 씩 다릅니다 (파일 시작부터 313656 바이트입니다. 또 다른 훨씬 더 일반적인 상쇄는 176287). 파일은 압축되지 않은 상태에서 1MB에서 200MB 사이입니다.

우분투 리눅스 버전의 gzip 및/또는 7zip 명령 줄 유틸리티가 파일 압축에 사용 된 것 같습니다. 나는 gzipped 버전이 손상된 버전인지 확신 할 수 없다.

그런 특정 패턴의 손상을 만드는 메커니즘을 알고있는 사람은 누구입니까? (a) 향후에 피할 수 있고 (b) 잘하면 "올바른"(가장 손상되지 않은) 버전을 선택하여 사용할 수 있습니다. 파일?

답변

1

쌍의 gzip 멤버의 압축을 풀면 이미 압축되지 않은 다른 쌍의 멤버와 다른 몇 바이트가 표시됩니까? 그렇다면 다음 질문은 오류 메시지없이 gzip 압축 풀기 작업을 수행 했습니까? 그렇다면 gzip 파일의 끝에있는 CRC-32 값과 압축되지 않은 길이는 ok로 체크 아웃됩니다. 이 경우 gzip 파일을 보관해야합니다.

나는 압축되지 않은 파일의 손상을 일으킬 수있는 것을 알거나 추측 할 방법이 없습니다.

+0

감사합니다. 나는 gzip이 이런 방식으로 CRC를 사용한다는 것을 모르고있었습니다. 또한 파일이 합법적 인 처리로 인해 파이프 라인의 어느 시점에서 다른 파일로 바뀌 었음을 확인했습니다. 그것들은 모두 유효한 처리 타임 스탬프만으로 모두 유효합니다. (그래서 나는 그 중 하나를 안전하게 버릴 수있다. – Andreus