在本文How To Create a Patch File for a RPM中,有以下命令:
diff -ru base-1.4.4-orig base-1.4.4 >| $HOME/rpmbuild/SOURCES/base-1.4.4-f12.patch
由于输出被写入文件,简单的重定向操作符>
对我来说很好。
此运算符是否意味着重定向到管道?如果是这样,如何重定向到管道不同于仅重定向到文件或仅仅是管道到进程?
答案 0 :(得分:6)
执行命令
set -o noclobber
或等效的
set -C
在重定向输出时,您可以使bash拒绝写入现有文件。
使用>|
而不是>
会覆盖该设置。
参考文献:
或运行info bash
(假设它已安装在您的系统上)并搜索>|
:
s>\|
(如果您熟悉csh和/或tcsh,则bash的>|
(大于竖直条)类似于csh的>!
(大于感叹号)。
答案 1 :(得分:2)
来自bash手册页:
如果重定向运算符是> |或重定向 运算符是>并且未启用set builtin命令的noclobber选项,重定向>即使文件名为,也会尝试 字存在。