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

问题描述 投票:1回答:2

我正在尝试使用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.

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

bash diff patch
2个回答
0
投票

试试$diff_out | patch -u $name

如果不作为论据提供,patch将接受来自stdin的差异。


0
投票

您可以使用process substitution来避免临时文件:

patch -u $name <(diff -u $name $chVer/$name.latest)
© www.soinside.com 2019 - 2024. All rights reserved.