现在的位置: 首页 > 综合 > 正文

linux diff patch 用法

2013年10月03日 ⁄ 综合 ⁄ 共 954字 ⁄ 字号 评论关闭

翻译,原文:

http://www.scottro.net/qnd/qnd-diff-patch

1)找到diff, patch工具

which diff
which patch

若没找到,可能没有添加到环境变量中,试试这个

for i in /bin /usr/bin /usr/local; do
    find $i -name diff
    find $i name patch
done

能否找到

2)生成patch

比较新文件和源文件的差生成patch

diff -uN original_file new_file >patch.original_file

例如,自己修改的linux版本和原始版本作diff后的patch:

diff -uNr linux-2.4.19 linux-2.4.19-my_version   >patch.linux-2.4.19-my_version

3)使用patch

把patch文件和需要打patch的文件放在同一目录下,执行

patch <patch_file

注意:需要打patch的文件必须是2)中的相同文件名

如果要给整个文件夹打patch,需要加 -p1参数

patch -p1 <patch_file

比如上个例子中linux kernel的patch,你给了别人,别人可以在原始kernel上使用patch,而变成你的kernel代码。

patch -p1 <patch.linux-2.4.19-my_version

更多参考:

http://www.gnu.org/software/diffutils/diffutils.html

http://www.gnu.org/manual/diffutils/html_mono/diff.html

================翻译完========================

通过man diff 查看上文中的参数含义

  -u, -U NUM, --unified[=NUM]
             output NUM (default 3) lines of unified context

  -r, --recursive
              recursively compare any subdirectories found

   -N, --new-file
              treat absent files as empty

抱歉!评论已关闭.