如何仅针对目录中的文本文件生成patch补丁文件
解决方案
你不需要将不同类型文件拆分到不同文件夹,diff本身就支持通过内置参数实现仅匹配.txt后缀文件的需求。
方法1:使用diff内置包含/排除组合参数(最简便)
执行以下命令即可仅对比两个目录下的txt文件生成补丁,兼容你之前的diff -uraN使用习惯:
diff -uraN --exclude='*' --include='*.txt' original/ new/ > patch.diff
规则逻辑:
- diff的过滤规则按从左到右的顺序优先级匹配,先通过
--exclude='*'排除所有类型文件,再通过--include='*.txt'将txt文件从排除范围中召回,最终只会对txt文件做差异比对。
方法2:兼容旧版本diff的实现方案
如果你的diff版本不支持--include参数,可以搭配find命令实现相同效果:
# 先进入新版本目录 cd new/ # 遍历所有txt文件逐一比对生成补丁 find . -type f -name "*.txt" -exec diff -uraN ../original/{} {} \; > ../patch.diff
内容的提问来源于stack exchange,提问作者Mina Ashraf
相关产品推荐
相关产品推荐

