![在两个相似的目录之间递归地相互减去文件](https://linux22.com/image/1353855/%E5%9C%A8%E4%B8%A4%E4%B8%AA%E7%9B%B8%E4%BC%BC%E7%9A%84%E7%9B%AE%E5%BD%95%E4%B9%8B%E9%97%B4%E9%80%92%E5%BD%92%E5%9C%B0%E7%9B%B8%E4%BA%92%E5%87%8F%E5%8E%BB%E6%96%87%E4%BB%B6.png)
我正在尝试设计一种方法来获取两个(几乎相同的)目录并显示两个目录中所有文件之间的差异。
寻找两件不同的事情:
1-列出两个目录之间不同的所有文件(递归)
2- 从 /old-directory/ 中减去 /new-directory/ 中的所有文件,并将结果输出到第三个目录或某个我可以轻松扫描差异的地方。
我通过将备份(干净)目录与带有疑似后门的目录(在先前存在的文件内)进行比较来寻找服务器的后门。
答案1
如果您的目标是比较文件,您可以diff
直接使用,例如这样:
diff -r old-dir new-dir
使用选项-q
可以抑制差异并仅获取列表哪个文件有所不同,或者某些文件仅存在于其中一个目录中。
$ diff -r old-dir new-dir
Only in old-dir: 2
diff -r old-dir/3 new-dir/3
0a1
> this line was inserted by an evil hacker...
$ diff -rq old-dir new-dir
Only in old-dir: 2
Files old-dir/3 and new-dir/3 differ
还有一个图形界面,称为xxdiff方便筛选差异;首页截图: