如何区分两个文件系统状态的 md5 总和?
How to diff md5 sums of two filesystem states?
我正在收集 md5sum
同一文件系统在两个不同时间点的快照。 (即,感染前后。)我需要 diff
这两个状态,以便及时查看这两个时间点之间哪些文件发生了变化。
为了收集这些状态,我可能会执行以下操作(在关闭 SIP 的 macOS 上):
sudo gfind / ! -path '*/dev/*' ! -path '*/Network/*' ! -path '*/Volumes/*' ! -path '*/.fseventsd/*' ! -path '*/.Spotlight-V100/*' -type f -exec md5sum {} \; > $(date "+%y%m%d%H%M%S").system_listing
我遇到的问题是生成的文件每个大约 100MB,单独使用 diff
似乎比较块而不是输出中每个单独文件的 md5sum
。
是否有使用 diff
工具执行此操作的有效方法,或者是否有必要编写脚本以某种方式根据文件名路径比较两个文件,有效地重新创建 diff 以比较具有路径的行唯一的比较器值,然后 return 信息基于关联的 md5sum
?
外观运行目录顺序可能会产生很多嘈杂的差异
例如我 运行 以下两个命令,比较两个充满 pdf 的目录。
一个有1个文件,另一个有几十个文件
交换目录顺序产生 2 个差异行,
相反,我们希望 diff 报告没有 diff 的事实。
find books/ docs-pdf/ -type f -exec md5sum {} \; > snapshot1
find docs-pdf/ books/ -type f -exec md5sum {} \; > snapshot2
diff snapshot1 snapshot2
--- snapshot1
+++ snapshot2
@@ -1,4 +1,3 @@
-83322cb1aaa94f9c8e87925f9d2a695e books/ModSimPy.pdf
192e5d38e59d8295ec9ca715e784a6d0 docs-pdf/c-api.pdf
76c5bfb41bc6e5f9c8da1ab1f915e622 docs-pdf/distributing.pdf
0a630ec314653c68153f5bbc4446660c docs-pdf/extending.pdf
@@ -25,3 +24,4 @@
31e3dc3f78a12c59cdc0426d8e75ec99 docs-pdf/tutorial.pdf
4c59e969009b6c3372804efdfc99e2d9 docs-pdf/using.pdf
cf5330f4ed5ca5f63f300ccfa3057825 docs-pdf/whatsnew.pdf
+83322cb1aaa94f9c8e87925f9d2a695e books/ModSimPy.pdf
按第 2 列排序后,diff 成功报告,没有 diff
sort -k2 snapshot1 >sorted.snapshot1
sort -k2 snapshot2 >sorted.snapshot2
diff sorted.snapshot1 sorted.snapshot2
如果这不能解决所有嘈杂的 diff 输出,请 post 删除您不想要的示例输出
我正在收集 md5sum
同一文件系统在两个不同时间点的快照。 (即,感染前后。)我需要 diff
这两个状态,以便及时查看这两个时间点之间哪些文件发生了变化。
为了收集这些状态,我可能会执行以下操作(在关闭 SIP 的 macOS 上):
sudo gfind / ! -path '*/dev/*' ! -path '*/Network/*' ! -path '*/Volumes/*' ! -path '*/.fseventsd/*' ! -path '*/.Spotlight-V100/*' -type f -exec md5sum {} \; > $(date "+%y%m%d%H%M%S").system_listing
我遇到的问题是生成的文件每个大约 100MB,单独使用 diff
似乎比较块而不是输出中每个单独文件的 md5sum
。
是否有使用 diff
工具执行此操作的有效方法,或者是否有必要编写脚本以某种方式根据文件名路径比较两个文件,有效地重新创建 diff 以比较具有路径的行唯一的比较器值,然后 return 信息基于关联的 md5sum
?
外观运行目录顺序可能会产生很多嘈杂的差异
例如我 运行 以下两个命令,比较两个充满 pdf 的目录。
一个有1个文件,另一个有几十个文件
交换目录顺序产生 2 个差异行,
相反,我们希望 diff 报告没有 diff 的事实。
find books/ docs-pdf/ -type f -exec md5sum {} \; > snapshot1
find docs-pdf/ books/ -type f -exec md5sum {} \; > snapshot2
diff snapshot1 snapshot2
--- snapshot1
+++ snapshot2
@@ -1,4 +1,3 @@
-83322cb1aaa94f9c8e87925f9d2a695e books/ModSimPy.pdf
192e5d38e59d8295ec9ca715e784a6d0 docs-pdf/c-api.pdf
76c5bfb41bc6e5f9c8da1ab1f915e622 docs-pdf/distributing.pdf
0a630ec314653c68153f5bbc4446660c docs-pdf/extending.pdf
@@ -25,3 +24,4 @@
31e3dc3f78a12c59cdc0426d8e75ec99 docs-pdf/tutorial.pdf
4c59e969009b6c3372804efdfc99e2d9 docs-pdf/using.pdf
cf5330f4ed5ca5f63f300ccfa3057825 docs-pdf/whatsnew.pdf
+83322cb1aaa94f9c8e87925f9d2a695e books/ModSimPy.pdf
按第 2 列排序后,diff 成功报告,没有 diff
sort -k2 snapshot1 >sorted.snapshot1
sort -k2 snapshot2 >sorted.snapshot2
diff sorted.snapshot1 sorted.snapshot2
如果这不能解决所有嘈杂的 diff 输出,请 post 删除您不想要的示例输出