通常我用meld
它来比较文件夹,但是当一个文件夹有许多子文件夹时,它就不方便了,因为我必须单击每个子文件夹才能查看是否有差异。
是否有一个工具可以比较文件夹并仅显示差异?
答案1
命令行 diff 将执行此操作,而一个小 grep 会为您提供不同文件的列表,例如:
diff -r dir1 dir2 | grep -e "Only|diff"
显然还有待改进……
答案2
为了进行良好的视觉并排比较,我喜欢使用两个 md5 校验和和 vimdiff 文件。
这还有一个额外的好处,就是可以轻松地比较两个不同服务器上的两个目录。
它仅显示哪些文件不同,而不是内部差异。
比较服务器 sr1 和 sr2 上的 /etc/ 目录:
(在第一台服务器上:)
for i in (find /etc/ -print); do md5sum $i; done | awk '{print $2 "\t" $1}' | sort >
~/tmp/etc-sr1.txt
(在第二台服务器上:)
for i in (find /etc/ -print); do md5sum $i; done | awk '{print $2 "\t" $1}' | sort >
~/tmp/etc-sr2.txt
scp ~/tmp/etc-sr2.txt sr1:tmp/etc-sr2.txt
(在第一台服务器上:)
vimdiff ~/tmp/etc-sr1.txt ~/tmp/etc-sr2.txt