2016-07-27 73 views
0

我有两个目录。 dir1和dir2。如何查找在两个目录中具有不同内容的文件名

Dir1中的文件有:的abc.txt,abd.txt,abe.txt,abf.txt

在DIR2文件是:abi.txt,abd.txt,abe.txt,abg.txt,ABH .TXT

abd.txt和abe.txt存在两个目录,并且具有不同的内容。如何编写一个只返回这两个文件名的脚本? 我不想要在dir1或dir2中丢失的文件。我只需要具有相同名称并具有不同内容的文件名。

预先感谢您。

+0

命令的简单的解决方案:COMM -23 <(LS DIR1 |排序)<(LS DIR2 |排序)将显示其不存在于任一目录中的文件。 –

+1

SO指导方针表示,您应该告诉我们您到目前为止所尝试的内容,以及您如何得出结论(或者它给您的错误)。请尽力而为。 – SaintHax

+0

这个? [Linux中2个目录之间的区别](http://stackoverflow.com/q/16787916/1983854)。 – fedorqui

回答

0

一种间接的方式这样做是使用diff命令

diff -r dir1 dir2 | grep "diff -r"

diff -r dir1 dir2会显示与同名的文件名作为diff -r dir1/file dir2/file文件的差异。其他文件将以前缀Only列出。

希望有人建议:-)像

+0

谢谢@Pintu ..你的命令显示:diff -r dir1/abd.txt dir2/abd.txt和diff -r dir1/abe.txt dir2/abe.txt,这是可以的。但有什么办法只获取文件名? –

+0

您可以使用剪切命令来输出结果。 'diff -r dir1 dir2 | grep“diff -r”| cut -d“”-f3 | xargs basename'。这应该有所帮助。 – Pintu

+0

它工作@Pintu。非常感谢.. –

相关问题