我有两个 tar 存档(压缩或未压缩),我想找到这两个存档中的所有差异。两个档案都包含一个完整的文件系统(即解压时,会生成诸如/bin、/home、/root、/usr、/var、/etc、...之类的目录,我希望您明白这一点)。我想要一份包含以下内容的清单:
我不能只解压这些档案并使用diff,因为 diff 无法正确识别绝对符号链接(因为它们会指出档案的文件系统结构)。
还有另一种方法可以比较两个 tar 存档的内容吗?
diff如果您有符号链接进行比较,我认为您不会从中得到任何有用的东西。不要尝试一次性完成所有操作,而是执行两次单独的操作:一次比较元数据,一次比较文件内容。
如果您没有外来文件名,则对tar -tv或的输出进行简单比较pax -v对于元数据部分就足够了。在 bash/ksh/zsh 中:
pax -v <(archive1.tar) <(archive2.tar)
Run Code Online (Sandbox Code Playgroud)
对于归档文件的内容,用avfs挂载它们并比较两个目录树。
mountavfs
diff -urN ~/.avfs$PWD/archive1.tar\#/ ~/.avfs$PWD/archive2.tar\#/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17801 次 |
| 最近记录: |