/ /何?> bashでやる? - bash

何をしますか? bashでやる? - bash

記事上で、 RPM用のパッチファイルを作成する方法、このコマンドがあります:

diff -ru base-1.4.4-orig base-1.4.4 >| $HOME/rpmbuild/SOURCES/base-1.4.4-f12.patch

出力はファイルに書き込まれるため、単純なリダイレクション演算子 > 私のためにうまく動作します。

この演算子はパイプへのリダイレクトを意味しますか?もしそうならば、パイプへのリダイレクトは、ファイルへのリダイレクトやプロセスへのパイプだけとはどのように違うのでしょうか?

回答:

回答№1は6

コマンドを実行すると

set -o noclobber

または同等物

set -C

出力をリダイレクトするときにbashが既存のファイルへの書き込みを拒否するようにすることができます。

使用 >| のではなく、 > その設定を上書きします。

参考文献:

または実行する info bash (あなたのシステムにインストールされていると仮定して) >|

s>|

(もしあなたがcshやtcshに精通していれば、bashの >| (縦棒より大きい)はcshと似ています >! (感嘆符よりも大きい)。


回答№2については2

bashのマンページから:

リダイレクション演算子が> |の場合、またはリダイレクション operator>があり、set builtinコマンドのnoclobberオプションが有効でない場合、リダイレクション>は、指定されたファイル 単語によって。