如何比较bash中两个director的内容?

可以说有两个dirs

/path1 and /path2 

例如

 /path1/bin /path1/lib /path1/... /path2/bin /path2/lib /path2/... 

而且需要知道内容(文件名称和文件内容)是否相同,如果没有列出的差异

如何在Linux中做到这一点? 有一些Bash / Zsh命令吗?

diff命令可以显示两个目录之间的所有差异: diff -qr /path1 /path2

有人建议,但删除了他们的答案,不知道为什么。 尝试使用rsync

 rsync -avni /path1/ /path2 

这个程序通常会同步两个文件夹,但使用-n它会做一个干运行。

我正在使用这个脚本来完成这个任务:

 diff <(cd "$dir1"; find . -type f -printf "%p %s\n" | sort) \ <(cd "$dir2"; find . -type f -printf "%p %s\n" | sort) 

随意调整<(...)部分中的脚本以满足您的特定需求。 此版本使用find通过打印其中找到的文件的路径和大小来打印目录内容。 其他的事情当然是可能的。