2

我正在尝试做类似的事情:

patch <( zcat data.201301.gz ) patch_file.diff -o /dev/stdout

我得到的结果是:

File /dev/fd/63 is not a regular file -- refusing to patch
4504 out of 4504 hunks ignored -- saving rejects to file /dev/stdout.rej

如何使用进程替换生成修补文件?

4

2 回答 2

1

查看补丁的源代码,这似乎是不可能的。

要修补的文件必须是标准文件,任何其他类型的文件都被拒绝。

不幸的是,符号链接、管道、描述符等不起作用。

于 2014-07-16T12:57:18.667 回答
0

要处理脚本中可能的符号链接,这有助于:

patch -o "$out" "$(readlink "$in")" "$diff"
于 2017-10-14T11:52:03.540 回答