“diff orig new”与“diff new orig”

Mar*_*ter 6 diff cat arguments

使用 比较 2 个文件时difforiginal文件作为第一个参数提供,new(修改后的)作为第二个参数提供。

diff original new
Run Code Online (Sandbox Code Playgroud)

据推测,这种排序背后的逻辑是为了展示如何使用从左到右的约定来将原始内容转换为新的时间流逝方式。

我对这个逻辑有问题。当我比较两个文件时,我直觉地使用逆表示法:

diff new original
Run Code Online (Sandbox Code Playgroud)

这样我就可以在查看更改后,将新文件转换为旧文件,从而将其“修补”到新版本。

cat new > original
Run Code Online (Sandbox Code Playgroud)

但是使用“我的”倒置符号令人困惑,因为差异显示+用于删除和-添加。

我该如何解决这个问题?

Ian*_*anC 1

有一个简单的解决方案!

编写以下脚本:

if [ "$#" -ne 2 ]; then
    echo "USAGE: diff2 newfile oldfile"
    exit 1;
fi

diff $2 $1
Run Code Online (Sandbox Code Playgroud)

将其保存在 PATH 上的文件夹之一(可能/bin是 或/usr/bin)上,命名为 diff2。

就是这样,您现在可以调用:

diff2 newfile oldfile,然后会调用diff oldfile newfile