gzip으로 압축된 파일 버전이 다른 md5 체크섬을 생성하는 이유는 무엇입니까?

gzip으로 압축된 파일 버전이 다른 md5 체크섬을 생성하는 이유는 무엇입니까?

다음 명령을 사용하여 4개의 파일을 만들었습니다.svndump

test.svn 
test2.svn 
test.svn.gz  
test2.svn.gz

이제 이것을 실행할 때

md5sum test2.svn test.svn test.svn.gz test2.svn.gz

이것이 출력이다

89fc1d097345b0255825286d9b4d64c3  test2.svn
89fc1d097345b0255825286d9b4d64c3  test.svn
8284ebb8b4f860fbb3e03e63168b9c9e  test.svn.gz
ab9411efcb74a466ea8e6faea5c0af9d  test2.svn.gz

gzip그래서 파일 압축이 왜 다른지 이해가 되지 않습니다 . 압축하기 전에 타임스탬프를 어딘가에 넣는 것입니까?mysqldump상단의 날짜 필드를 사용할 때 비슷한 문제가 발생했습니다.

답변1

gzip파일 수정 시간 및 파일 이름(있는 경우)을 포함하여 원본 파일에 대한 일부 메타데이터를 레코드 헤더에 저장합니다. 바라보다GZIP 파일 형식 사양.

gzip따라서 두 파일이 동일하지 않을 것으로 예상됩니다 . 헤더에 원래 파일 이름과 타임스탬프가 포함되지 않도록 하는 gzip플래그를 전달하여 이 문제를 해결할 수 있습니다 .-n

답변2

모든 .gz 파일에는 파일 이름이 포함된 헤더가 있습니다. 시도해 보세요 head test.svn.gz.head test2.svn.gz

관련 정보