diff命令的好用功能 (diff and patch使用

8 views
Skip to first unread message

stan8688

unread,
Apr 1, 2009, 1:58:44 AM4/1/09
to 嵌入式linux
diff命令的好用功能
版权声明:可以任意转载,但转载时必须标明原作者charlee、原始链接http://tech.idv2.com/2009/02/21/gnu-
diff-tips/以及本声明。

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格式的文件互相比较时, 就不至于因为换行符不一致
而出现大量的差异。

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

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

Reply all
Reply to author
Forward
0 new messages