我不知道为什么会发生这种情况,但我上传了一些文件,Amazon S3
然后删除了md5sum
在亚马逊和本地检查它们的发送文件。但是最近我发现这个问题关于相同的内容产生了两个不同的md5sum
[valter.silva@alog ~]$ ls
renew.log s3
[valter.silva@alog ~]$ ls s3/
renew.log
[valter.silva@alog ~]$ md5sum renew.log
d41d8cd98f00b204e9800998ecf8427e renew.log
[valter.silva@alog ~]$ md5sum s3/renew.log
d41d8cd98f00b204e9800998ecf8427e s3/renew.log
[valter.silva@alog ~]$ gzip renew.log
[valter.silva@alog ~]$ gzip s3/renew.log
[valter.silva@alog ~]$ md5sum renew.log.gz
aa1f0ae9a61aac5bcd32b917fbd9324b renew.log.gz
[valter.silva@alog ~]$ md5sum s3/renew.log.gz
6ae0e48edb68e9ed938fdfc3894f6c94 s3/renew.log.gz
Run Code Online (Sandbox Code Playgroud)
有人知道为什么会这样吗?或者我应该如何检查我的文件是否一致、可靠?
更新 回答蒂亚戈克鲁兹的回答:
[valter.silva@alog ~]$ sha1sum renew.log
da39a3ee5e6b4b0d3255bfef95601890afd80709 renew.log
[valter.silva@alog ~]$ sha1sum s3/renew.log
da39a3ee5e6b4b0d3255bfef95601890afd80709 s3/renew.log
[valter.silva@alog ~]$ gzip renew.log
[valter.silva@alog ~]$ gzip s3/renew.log
[valter.silva@alog ~]$ sha1sum renew.log.gz
2d9111d9db71da9fe4de57fbc19c89eb0bd46470 renew.log.gz
[valter.silva@alog ~]$ sha1sum s3/renew.log.gz
05014ca24d133f1761f9134e8dab52e6e2111010 s3/renew.log.gz
Run Code Online (Sandbox Code Playgroud)
它给出了同样的问题 Tiago。
mpy*_*mpy 54
根据RFC 1952,gzip
文件头包括原始文件的修改时间(字段MTIME
)。您可以显示在纯文本标题1)具有gzip -lv renew.log.gz
:
method crc date time compressed uncompressed ratio uncompressed_name
defla 64263ac7 Jun 21 17:59 314 597 52.1% renew.log
Run Code Online (Sandbox Code Playgroud)
因此,如果您真的想比较 gzip 文件,请使用-n
选项压缩它们,不保存原始文件名和时间戳,
gzip -n renew.log s3/renew.log
Run Code Online (Sandbox Code Playgroud)
并且它们的 md5sum 应该相同。
否则你可以使用
md5sum <(zcat renew.log.gz) <(zcat s3/renew.log.gz)
Run Code Online (Sandbox Code Playgroud)
计算解压文件的 md5sum。
1)但是,显示的时间和日期不是取自表头,而是代表当前值;文件名也是如此:
$ gzip renew.log
$ mv renew.log.gz foo.gz
$ gzip -lv foo.gz -------- uncompressed name is taken from current name ---v
method crc date time compressed uncompressed ratio uncompressed_name
defla 6c721644 Jul 11 22:34 580 1586 65.7% foo
$ hexdump -C foo.gz | head -n 2
00000000 1f 8b 08 08 f0 16 df 51 00 03 72 65 6e 65 77 2e |.......Q..renew.|
00000010 6c 6f 67 00 8d 93 dd 6e 9b 30 18 86 8f 89 94 7b |log....n.0.....{|
^^^-------^^^^^
original filename is stored in the header
Run Code Online (Sandbox Code Playgroud)
Tia*_*ruz 10
只需使用带有'-n'标志的gzip:
tiagocruz@stark:~$ gzip -n Yippie-Ki-Yay.mp3 bla/Yippie-Ki-Yay.mp3
tiagocruz@stark:~$ sha1sum Yippie-Ki-Yay.mp3.gz bla/Yippie-Ki-Yay.mp3.gz
b44b21c5f414935f1ced1187bfafd989704474a5 Yippie-Ki-Yay.mp3.gz
b44b21c5f414935f1ced1187bfafd989704474a5 bla/Yippie-Ki-Yay.mp3.gz
Run Code Online (Sandbox Code Playgroud)
来源:https : //unix.stackexchange.com/questions/31008/why-does-the-gzip-version-of-files-produce-a-different-md5-checksum
归档时间: |
|
查看次数: |
5186 次 |
最近记录: |