我正在运行一些实验来测试文件系统差异,例如将较旧的 nixOS 版本和较新的版本升级到相同的 flake/配置,以及与 debian 和 ansible 相同的版本。我正在尝试测量哪些是最相似的,并且听说 rsync 是测量这一点的好工具,但我似乎无法找到任何将其用于此目的的好资源。我需要测量文件系统在大小、不同内容(例如文件系统之间同一文件上的不同字节)、丢失/现有文件等方面的差异。显然,我不想包含任何类型的时间戳。人们通常使用什么来衡量这种事情,如果是 rsync,又如何衡量?如果相关的话,我计划使用 nbd 安装两个 qcow2 映像。
答案1
有几个建议。
设想
mkdir -p a/c b/c
date | tee a/1 a/2 > a/c/3
who | tee b/2 > b/c/4
cp a/1 b/1
diff -qr a b
Files a/2 and b/2 differ
Only in a/c: 3
Only in b/c: 4
rsync -nr -iv --delete --size-only --checksum a/ b | grep '^[<*>]'
>fcsT...... 2 # "2" was in both but different
*deleting c/4 # "c/4" was in b but not in a
>f+++++++++ c/3 # "c/3" was in a but not in b
这两个命令将为您提供不同文件以及缺少或缺少的文件的a
报告b
。 (两者都不是可靠的机器可解析的,但我认为rsync
可能有优势。我已经注释了输出,rsync
因为每行表示的内容不一定很明显。)
一般来说,我会diff
根据您的情况提出建议,但您询问了rsync
,所以我也将其包含在这里。