2014-03-28 40 views
2

我怀疑几年前有人不小心将文件夹结构从/home/data复制到/home/something/data。此后/home/data已经有很多更新和更改。 什么是最简单的方法来检查/home/something/data独特 (通过名称和位置)的任何文件,以帮助我确认是否有从/home/data复制?找到不同路径所特有的文件BASH

回答

2

使用diff -r dir1 dir2,您可以递归扫描目录结构和内容的差异。其他标志可以根据自己的喜好调整输出和行为。

2

使用rsync以空运行模式查看是否将/home/something/data复制到/home/data实际上会复制任何数据。

rsync -r --dry-run /home/something/data /home/data 

如果/home/something/data下的文件是相同的/home/data下的文件,它不会被复制,并且rsync --dry-run不会报告。

1

您可能会也可能不会喜欢这种方法,但扫描所有文件可能需要一段时间,但我一般都会有很好的感觉。

转到每个目录结构的顶部和运行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 

当他们完成你的交换机可能会有所不同,运行通过sortuniq -u输出文件告诉大家,只有一次(他们都应该出现,如果两次的文件是相同的两个目录)出现的台词:

sort < /tmp/[ab] | uniq -u 
+0

这是不必要的复杂,但哦,这么聪明! +1!我认为用'xargs'更可读 – slezica