可能重复:
Linux:比较目录结构而不比较文件
我正在比较两个文件夹树,但这需要很长时间,因为它比较的是文件本身。我只想知道哪些文件夹/文件在一棵树中,而在另一棵树中没有。
做这个的最好方式是什么?
答案1
使用find
列出每个树中的文件,对它们进行排序,然后使用diff
或comm
进行比较。这个鲜为人知的comm
命令是一个专门的文件比较工具,它只区分只出现在第一个文件中的行、只出现在第二个文件中的行以及同时出现在两个文件中的行。
(cd /some/dir1 && find . | sort >/tmp/dir1.find)
(cd /where/dir2 && find . | sort >/tmp/dir2.find)
# Show the files that are in dir1 but not in dir2
comm -23 /tmp/dir1.find /tmp/dir2.find
# Show the files that are in dir2 but not in dir1
comm -13 /tmp/dir1.find /tmp/dir2.find