압축되지 않은 원본 파일을 사용하여 gzip 파일을 정확하게 다시 만들 수 있습니까?

압축되지 않은 원본 파일을 사용하여 gzip 파일을 정확하게 다시 만들 수 있습니까?

gzip 파일의 체크섬 세트에 대한 추적성을 잃지 않고 를 gzip사용하여 보다 효율적으로 저장하고 싶은 일련의 파일이 있습니다 .xz

나는 이것이 xz 파일에서 gzip 파일을 다시 만들 수 있다고 생각하지만 다른 제안도 가능합니다.

자세히 설명하자면... 이라는 gzip 파일이 있고 target.txt.gz압축을 풀고 target.txt압축 파일을 삭제하는 경우 원본 압축 파일을 정확하게 다시 만들고 싶습니다 target.txt.gz. 정확하게 말하면 파일의 암호화 체크섬이 원본과 정확히 동일하다는 것을 나타내야 한다는 의미입니다.

처음에는 이것이 불가능하다고 생각했습니다. 왜냐하면 gzip 파일에는 압축 해제 시 보존되지 않을 수 있는 원본 파일 이름 및 타임스탬프와 같은 메타데이터와 거의 확실한 주석, 소스 운영 체제 및 압축 플래그와 같은 메타데이터가 포함되어 있기 때문입니다. 압축 해제 시 보존되지 않습니다.

그러나 나는 내 질문을 수정하려고 생각했습니다. 압축되지 않은 데이터와 결합하여 원본 gzip 파일을 다시 만들 수 있도록 gzip 파일에서 추출할 수 있는 최소한의 헤더 정보가 있습니까?

그러다가 다음과 같은 도구의 존재로 인해 여전히 답이 없을 수도 있다고 생각했습니다.조플리그리고7-zip, 이는 표준 gzip 프로그램보다 더 나은(따라서 다른) gzip 호환 스트림을 생성할 수 있습니다. 내가 아는 한, gzip 파일 형식은 어떤 압축기가 이를 생성했는지 기록하지 않습니다.

그래서 내 질문은 이렇습니다. 결국 첫 번째 문단에 명시된 목표를 달성할 수 있다는 것을 의미할 수 있는 내가 생각하지 못한 다른 옵션이 있습니까?

답변1

이는 도움이 될 수 있습니다:https://github.com/google/grittibanzli

Grittibanzli는 수축 스트림을 더 작은 파일로 압축하여 원래 수축 스트림으로 다시 디코딩할 수 있는 도구입니다. 즉, deflate 스트림 내부의 데이터뿐만 아니라 LZ77 기호, 허프만 트리 등 deflate 관련 정보도 압축하여 gzip, png, ... 파일을 정확하게 재현합니다.

관련 정보