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