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

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

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

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

자세히... gzip이라는 파일이 있어서 target.txt.gz압축을 풀고 target.txt압축파일을 버리면 원본 압축파일을 완전히 다시 만들고 싶습니다 target.txt.gz. 정확하게 말하자면, 파일의 암호화 체크섬이 원본 파일과 정확히 동일하다는 것을 보여주어야 한다는 뜻입니다.

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

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

그러다가 이런 도구가 있기 때문에 대답은 '아니다'일 수도 있겠다는 생각이 들었습니다.조플리그리고7개의 지퍼, 이는 표준 gzip 프로그램보다 더 나은(따라서 다른) gzip 호환 스트림을 생성할 수 있습니다. 내가 아는 한, gzip 파일 형식은 어떤 압축기가 이를 생성했는지 추적하지 않습니다.

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

답변1

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

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

관련 정보