扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
有时候可能会需要对比两个文件的差异,生成patch,在Linux下就可以使用diff命令
创新互联建站主要从事网站建设、网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务钦州,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
只想查看两个文件的差异的话,可以使用:diff file1 file2
要讲差异生成patch的话可以使用参数-u:diff -u file1 file2 file.patch
要把补丁打到file1上的话,可以使用:patch -p0 file.patch(p后面的数字取决于你在哪一级目录下打patch,0表示当前目录,1表示上一级目录,以此类推,目录是相对于生成patch的目录而言的)
去除补丁的话就用:patch -RE file.patch
diff后面可以跟几个常用参数说明:-u 生成patch
-r 递归对比目录中的所有文件
-a 将所有文件视为文本
-N 当递归对比目录下的文件时,一侧目录下面没有的文件可以看做是有一个对应名字的空文件,不加这个的话就只对比两头都有的文件
背景
在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
测试过程
diff命令主要用来比较文件的差异。diff会以逐行的方式比较文本文件的差异,如果指定比较的是目录,则diff会比较目录中相同文件名的文件,但不会比较其子目录。
主要参数如下所示:
second.txt
comm命令主要用于比较两个 已经排过序 的文件。
主要参数如下所示:
comm在对比文件前 一定要先排序 ,否则会出现报错提示,以上面diff示例的中的first.txt和second.txt为例
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流