有没有办法可以将 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/