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