我怀疑几年前有人不小心将文件夹结构从/home/data
复制到/home/something/data
。从那以后/home/data
进行了许多更新和更改。
检查/home/something/data
中是否有任何文件唯一的最简单方法是什么?
(按名称和位置)到该位置,以帮助我确认其中的所有内容是否都来自/home/data
?
答案 0 :(得分:2)
使用diff -r dir1 dir2
,您可以递归扫描目录以查找结构和内容的差异。其他标志可以根据您的喜好调整输出和行为。
答案 1 :(得分:2)
在干运行模式下使用rsync
,查看将/home/something/data
复制到/home/data
是否会实际复制任何数据。
rsync -r --dry-run /home/something/data /home/data
如果/home/something/data
下的文件与/home/data
下的文件相同,则不会被复制,rsync --dry-run
也不会报告。
答案 2 :(得分:2)
您可能喜欢或不喜欢这种方法,扫描所有文件可能需要一段时间,但我一般都有很好的感觉。
转到每个目录结构的顶部并运行find
并获取每个文件的md5校验和 - 您的开关可能会因我在OSX上而有所不同
cd /home/data
find . -type f -exec md5 -r {} + > /tmp/a
cd /home/something/data
find . -type f -exec md5 -r {} + > /tmp/b
完成后,通过sort
和uniq -u
运行输出文件,告诉您只出现一次的行(如果两个目录中的文件相同,则它们应该出现两次):
sort < /tmp/[ab] | uniq -u