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, ... 파일을 정확하게 재현합니다.