2012-10-02 33 views
0

我正在比较两个非常大的文件系统(用于迁移),diff -qr很棒,但是现在由于用户一直在使用新的位置文件已经发生了变化。我有一种方法可以使用diff,grep或其他任何方法来比较文件是否存在,即:忽略文件不同的事实。最新差异有很多: 只在/ dir1/myFile中 只在/ dir2/myFile中 在它中。有没有一种简单的方法可以使用grep仅显示dir2中不存在的dir1中完全不存在的文件,或者使用diff执行类似的操作。获取两个文件树之间不同的文件列表

回答

1

你可以使用:

tree /path/to/dir1 > out1 
tree /path/to/dir2 > out2 
diff out1 out2 | grep ">" 

但我觉得beyond compare更适合这样的工作。

+0

对不起,我没有提我工作在Mac上,但这个看起来不错。我不确定这个“>”,但你给了我足够的欢呼声。 –

+1

我现在得到“>”。只显示out2中的文件/行。 –

0

的一个衬垫都是伟大的,但这个bash脚本可以让你更多的定制:可以改变-e! -e或跳过某些文件。

for f in $(find old/ -type f) ; do if [ -e "new/${f}" ] ; then echo "${f} exists" ; fi ; done

相关问题