如果我想找到两个目录树之间的差异,我通常只执行:
diff -r dir1/ dir2/
这将准确地输出对应文件之间的差异。我感兴趣的只是获得内容不同的相应文件的列表。我以为这只是向diff传递一个命令行选项的问题,但我在手册页上找不到任何东西。
有什么建议吗?
如果我想找到两个目录树之间的差异,我通常只执行:
diff -r dir1/ dir2/
这将准确地输出对应文件之间的差异。我感兴趣的只是获得内容不同的相应文件的列表。我以为这只是向diff传递一个命令行选项的问题,但我在手册页上找不到任何东西。
有什么建议吗?
当前回答
Meld也是一个比较两个目录的好工具:
meld dir1/ dir2/
Meld有许多比较文件或目录的选项。如果两个文件不同,很容易进入文件比较模式并查看确切的差异。
其他回答
Channel同胞“billings”(freenode/#centos的名声)与我分享了他的方法:
diff -Naur dir1/ dir2
包括最后一个目录的正斜杠并不重要。
此外,在一些较旧的/服务器版本的diff上,-u选项似乎不可用。
diffs中的区别:
# diff -Nar /tmp/dir1 /tmp/dir2/
diff -Nar /tmp/dir1/file /tmp/dir2/file
28a29
> TEST
# diff -qr /tmp/dir1/ /tmp/dir2/
Files /tmp/dir1/file and /tmp/dir2/file differ
我使用的命令是:
diff -qr dir1/ dir2/
这和马克的完全一样:)但他的回答让我很困扰,因为它使用了不同类型的旗帜,让我看了两遍。使用Mark更冗长的标志,它将是:
diff --brief --recursive dir1/ dir2/
我很抱歉在其他答案完全可以接受的情况下发布了这篇文章。无法阻止自己……努力变得不那么迂腐。
要查找diff,使用以下命令:
diff -qr dir1/ dir2/
-r也将diff所有子目录-q告诉diff仅当文件不同时才报告。
diff --brief dir1/ dir2/
——brief将显示目录中不存在的文件。
否则
我们可以使用Meld,它将显示在图形窗口中,很容易发现差异。
meld dir1/ dir2/
报告dirA和dirB之间的差异,同时更新/同步:
rsync -auv <dirA> <dirB>
Meld也是一个比较两个目录的好工具:
meld dir1/ dir2/
Meld有许多比较文件或目录的选项。如果两个文件不同,很容易进入文件比较模式并查看确切的差异。