>|
いつ出力をファイルにリダイレクトする代わりに使用する必要がありますか>
?
これを見るときに与えられた説明は、ターゲットファイルが最初に切り捨てられることを保証することです。しかし、私は>
それが暗示されたと思います。
それは役に立ちましたか>|
?
答え1
これはオプションの明確なバイパスですnoclobber
。
これにより、セットを使用してもnoclobber
ファイルを上書きできます。
バラより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 >.