背景 在Linux系统环境的工作过程中,经常遇到需要对比文件差异的情况,此时,使用Linux提供的diff工具可以方便的发现文件不同版本之间差异,从而快速排除解决问题。 Windows端有强大文件对比工具BeyondCompare。 patch 命令可以将diff命令的输出应用到原始的对比文件中,将新版本的更新应用到原始的文件中。 命令 diff [option] [file1] [file2] patch [option] [file1] [file_differ] 测试环境 WSL: Linux PERSONALPC 4.4.0-19041-Microsoft #488-Microsoft Mon Sep 01 13:43:00 PST 2020 x86_64 x86_64 x86_64 GNU/Linux 测试过程#touch两个新文件tea.md和tea.revision.md,并填充内容,如下: $ vim tea.md 烧开水。 将茶叶放入茶叶滤网。 将滤网和水加入茶壶。 浸泡 6 分钟。用茶壶罩保温。 将茶倒入杯中。 可以选择加入温牛奶。 $ vim tea.revision.md 在烤箱的抽屉中加热茶壶。 烧开水。 将茶叶放入茶叶滤网。 将滤网和水加入茶壶。 浸泡 6 分钟。用茶壶罩保温。 将茶倒入杯中。 $ diff -u tea.md tea.revision.md --- tea.md 2021-12-04 19:20:58.607757500 +0800 +++ tea.revision.md 2021-12-04 19:21:10.778518400 +0800 @@ -1,6 +1,6 @@ -在烤箱的抽屉中加热茶壶。 烧开水。 将茶叶放入茶叶滤网。 将滤网和水加入茶壶。 浸泡 6 分钟。用茶壶罩保温。 将茶倒入杯中。 +可以选择加入温牛奶。 # 文件开始的‘+’表示相对源文件内容增加的行,‘-’表示相对源文件中删除或者改变的行。 # ‘-u’选项将更加直接明了显示文件不同版本间的差异信息 # 将diff回显到终端的内容保存在tea.patch中,以便使用patch命令对源文件进行更新,如下: $ patch tea.md tea.patch