このリダイレクト"|>"はちょうどバグですか、それとも何か意味がありますか?

このリダイレクト"|>"はちょうどバグですか、それとも何か意味がありますか?

|>タイプミスを出しましたが、bash何も印刷されませんでした。 (ただし、空のファイルが生成されます。) たとえば、

date |> tmp.txt

それは実際に何か意味があると思いましたか?

答え1

これは、2番目の部分がリダイレクトのみを含む空のコマンドであるパイプラインのようです。このように書いてdate | >file説明する方が簡単かもしれませんね。空のコマンドは、リダイレクトを処理してファイルを生成する以外は何もしません。

date >| file一方、noclobberシェルオプションをオーバーライドすることで、>既存のファイルが定期的に上書きされるのを防ぎます。

$ touch foo; set -o noclobber
$ date > foo
bash: foo: cannot overwrite existing file
$ date >| foo       # works

答え2

はい、bashの場合は> file名前が filefile

[[email protected] my-tests]$ date | > my_file
[[email protected] my-tests]$ cat my_file
[[email protected] my-tests]$ 

関連情報