我正在尝试使用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的内容输出到我用补丁读取的临时文件吗?我不想这样做,因为我会在补丁完成后立即删除该文件
试试$diff_out | patch -u $name
如果不作为论据提供,patch
将接受来自stdin
的差异。
您可以使用process substitution来避免临时文件:
patch -u $name <(diff -u $name $chVer/$name.latest)