2009-02
21

GNU diff有很多功能平时我们不常用到,但若知道,在急需时还真能派得上用场。

最常用的功能莫过于生成patch文件了:

diff -urN old/ new/ > mysoft.patch

参数 -u 表示使用 unified 格式,-r 表示比较目录,-N 表示将不存在的文件当作空文件处理, 这样新添加的文件也会出现在patch文件中。

然后在需要应用patch的地方使用下述命令即可:

patch -p0 < mysoft.patch

diff的 -y 命令(长格式为 --side-by-side)可以将屏幕分成左右两部分,来比较两个文件之间的差异。 许多图形化的比较工具都有这个功能,但如果只能使用命令行,这个参数就相当有用了。 如果要改变左右各部分的宽度,可以通过 -W (--width)参数来指定。 (这条技巧来自于bkブログ,谢谢)

此外,--strip-trailing-cr 参数可以去除行尾的换行,这样DOS格式和Unix格式的文件互相比较时, 就不至于因为换行符不一致而出现大量的差异。



这篇文章有 3 条评论了,快来一起讨论讨论吧!
#1
fcicq
2009-02-22 09:50

有些人包括偶, 也喜欢这两个.
-p –show-c-function Show which C function each change is in.
-b –ignore-space-change Ignore changes in the amount of white space.

虽然说很少用这个小东西了… :D

#2
charlee
2009-02-23 12:56

-p 是个好东西,做C语言就十分合适 :D

#3
linuxpf
2009-06-14 12:12

不错,学习了!

添加评论

Security Code: