gzip 버전의 파일이 다른 md5 체크섬을 생성하는 이유


28

내가 사용하여 만든 네 개의 파일이 있습니다 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


젠장, 나는 방금 알아 냈지만 일부는 포인트를 쌓아 두었습니다. 당신의 대답 : D
whoami

답변:


32

gzip사용 가능한 경우 파일 수정 시간 및 파일 이름을 포함하여 원본 파일의 일부 메타 데이터를 레코드 헤더에 저장합니다. GZIP 파일 형식 사양을 참조하십시오 .

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


4

모든에 .gz 파일이 파일의 이름을 가진 헤더가 ... 시도 head test.svn.gzhead test2.svn.gz


그것은 많은 쓰레기를 출력합니다. 나는 head. test.svn.gz에서 잘 작동하지 않습니다
whoami

처음에는 파일 이름을 볼 수 있습니다.
Jan Marek

1
> 푸 test2.svn.gz 머리;? @ h'N`VD FO
whoami를

11
head test2.svn.gz|hexdump -C터미널을 망치지 않습니다
Mat

ohhh nice @Mat은 새로운 명령을 배우는 것을 좋아합니다
whoami
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.