在 Fedora Constantine 盒子上工作。我希望以递归方式diff
两个目录来检查源更改。由于项目的设置(在我自己参与所述项目之前!叹息),目录包含源代码和二进制文件,以及大型二进制数据集。虽然 diffing 最终适用于这些目录,但如果我可以忽略二进制文件,可能需要 20 秒。
据我所知,diff 没有“忽略二进制文件”模式,但有一个忽略参数,它会忽略文件内 的正则表达式。我不知道在那里写什么来忽略二进制文件,无论扩展名如何。
我正在使用以下命令,但它不会忽略二进制文件。有谁知道如何修改此命令来执行此操作?
diff -rq dir1 dir2
最佳答案
有点作弊,但这是我使用的:
diff -r dir1/ dir2/ | sed '/Binary\ files\ /d' >outputfile
这递归地比较 dir1 和 dir2,sed 删除二进制文件的行(以“二进制文件”开头),然后它被重定向到输出文件。
关于bash - 递归区分目录,忽略所有二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6710878/