将 gzip 压缩包与目录进行比较?

将 gzip 压缩包与目录进行比较?

有没有办法可以将 gzip 压缩包与现有目录进行比较?

我希望能够在不从 tarball 中提取数据的情况下完成此操作。

答案1

将 tarball 安装为目录,例如AVFS。然后diff -r在真实目录和 tarball 的安装点上使用。

mountavfs
diff -r ~/.avfs/path/to/foo.tar.gz\# real-directory

在 GNU/Hurd 上,等价物是tarfs.

答案2

原来 GNU tar 内置了 diff(-d):

$ #Create the archive and a difference:
$ echo one>file1;echo two>file2;tar -czf archive.tgz file*;echo changing>>file1
$ tar -dzf archive.tgz
file1: Size differs

如果您使用的 tar 没有此功能,请尝试:

$ for F in `tar -tzf archive.tgz`;do tar -xzOf archive.tgz $F|diff --brief - $F;done
Files - and file1 differ

答案3

这是一个新工具:http://diffscope.org/

旧工具:http://tardiff.sourceforge.net/

相关内容