5

假设有两个目录

/path1 and /path2

例如

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

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

并且需要知道它们在内容(文件名和文件内容)上是否相同,如果没有列出差异

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

4

3 回答 3

5

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

于 2013-05-09T23:25:16.423 回答
3

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

rsync -avni /path1/ /path2

该程序通常会同步两个文件夹,但使用 -n 它将进行空运行。

于 2013-05-09T23:42:00.937 回答
1

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

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

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

于 2013-05-09T23:23:42.267 回答