为什么最简单的补丁创建示例不起作用?

Why does the simplest example of patch creation not work?

怎么可以

echo "a" > a
echo "b" > a.new
diff -u a a.new > a.patch
patch -u -p1 < a.patch

使用 return 代码 1diff 命令失败并且没有输出?

diff returns 1 如果发现差异(请参阅 What are the error exit values for diff? 了解有关 return 代码的更多信息)即使 stdout被重定向到一个文件,在我看来这并没有太大帮助。