>| 重定向是什么意思做?

>| 重定向是什么意思做?

什么时候应该使用>|将输出重定向到文件而不仅仅是>

当我看到这个时给出的解释是它保证目标文件首先被截断。但我认为>已经暗示了这一点。

有用吗>|

答案1

这是对选项的明确绕过noclobber

这样,即使使用noclobberset,您也可以覆盖该文件。

http://mywiki.wooledge.org/NoClobber

man bash

如果重定向运算符为 >,并且已启用 set 内建函数的 noclobber 选项,则如果名称由单词扩展产生的文件存在并且是常规文件,则重定向将失败。如果重定向运算符为 >|,或者重定向运算符为 > 并且未启用 set 内置命令的 noclobber 选项,则即使 word 命名的文件存在,也会尝试重定向。

答案2

man bash

         -C      If set, bash does not overwrite an  existing  file  with
                  the  >,  >&,  and <> redirection operators.  This may be
                  overridden when creating output files by using the redi‐
                  rection operator >| instead of >.

相关内容