![“diff orig new”与“diff new orig”](https://linux22.com/image/97699/%E2%80%9Cdiff%20orig%20new%E2%80%9D%E4%B8%8E%E2%80%9Cdiff%20new%20orig%E2%80%9D.png)
使用 比较 2 个文件时diff
,original
文件作为第一个参数提供,new
(修改后的)作为第二个参数提供。
diff original new
据推测,这种排序背后的逻辑是展示如何使用从左到右的时间流动约定将原始的转换为新的。
我对这个逻辑有问题。当我比较两个文件时,我直观地使用逆表示法:
diff new original
这样我就可以在检查更改后将新文件放入旧文件中,从而将其“修补”到新版本。
cat new > original
但是使用“my”倒置表示法会令人困惑,因为 diff 显示+
删除和-
添加。
我该如何解决这个问题?
答案1
快速浏览一下手册页表明,如果您想明确的话,可以使用--from-file=original
和选项。--to-file=new
您将需要多输入一些内容,但会给您带来所需的灵活性,并且额外的好处是使事情变得明确。
diff --to-file=new --from-file=original
如果需要,您还可以编写一个简单的包装脚本,该脚本仅按照您想要的顺序获取文件名并为您运行它。
编辑:这是针对 GNU diff...但不确定这是否是标准(POSIX)选项。
答案2
有一个简单的解决方案!
编写以下脚本:
if [ "$#" -ne 2 ]; then
echo "USAGE: diff2 newfile oldfile"
exit 1;
fi
diff $2 $1
将其保存在 PATH 上的文件夹之一(可能是/bin
或/usr/bin
)上,命名为 diff2。
就是这样,您现在可以调用:
diff2 newfile oldfile
,然后会调用diff oldfile newfile