修补没有临时diff文件的文件

时间:2018-03-02 13:03:41

标签: bash diff patch

我正在尝试使用diff和patch

从同一文件的先前版本恢复文件
diff_out=$(diff -u $name $chVer/$name.latest)
patch -u $name $diff_out

其中$ name是我要恢复的文件名,$ chVer是该文件的所有旧版本的文件夹

不幸的是,这不起作用

patch: unrecognized option '---'
patch: Try 'patch --help' for more information.

$ diff_out内容不是由patch命令作为文件读取的,因此我是否需要将diff的内容输出到我用补丁读取的临时文件?我不想这样做,因为我会在补丁完成后立即删除该文件

2 个答案:

答案 0 :(得分:0)

尝试$diff_out | patch -u $name

如果不作为参数提供,

patch将接受来自stdin的差异。

答案 1 :(得分:0)

您可以使用process substitution

来避开临时文件
patch -u $name <(diff -u $name $chVer/$name.latest)