为什么`gzip`在压缩同一个文件时生成不同的二进制文件?

时间:2013-11-18 07:55:43

标签: linux gzip tar

以下是与bzip2比较的方式:

$ /tmp  ls testdir
xxx!                                                                                                                                                                                                            
$ /tmp  cat testdir/xxx\!
$ /tmp  tar -czf t1.tgz testdir                                                                                                                                                                                 
$ /tmp  tar -czf t2.tgz testdir
$ /tmp  md5sum t1.tgz
5485da4154e180b2c30cb43ed721aee9  t1.tgz
$ /tmp  md5sum t2.tgz
c494cd05ea3fd3aee997c541983423bd  t2.tgz
$ /tmp  tar -cjf t1.bz2 testdir
$ /tmp  tar -cjf t2.bz2 testdir
$ /tmp  md5sum t1.bz2                                                                                                                                                                                           
35003556c14da931e0bb31e56a8c42f9  t1.bz2
$ /tmp  md5sum t2.bz2                                                                                                                                                                                           
35003556c14da931e0bb31e56a8c42f9  t2.bz2 

我想知道为什么存档文件的名称会影响gzip的输出。

1 个答案:

答案 0 :(得分:1)

运行file t1.tgz t2.tgz,您应该会发现不同之处。 gzip压缩文件包含文件名和修改时间。文件名部分在我的系统中未使用,就像您创建档案一样,但修改时间是。如果您反复创建具有一个特定名称的文件,您仍将获得不同的文件。