出力をファイルにリダイレクトしたいとき、私は通常これを行います:
$ echo 'a' > b
$ cat b
a
tee
ただし、ファイルに直接リダイレクトする代わりに、人々が使用するのを見てきました。違いは何だろうと思います。このパターンの意味:
$ echo 'a' | tee c
a
$ cat c
a
単純なリダイレクトと何ら変わりはないようです。概念的には同じではないことは知っていますが、なぜ人々が一方を他方に使用するのか疑問に思います。
簡単に言えば
echo'a'> b、ファイルbに「a」を書き込みます。
#echo 'a' > b
#cat b
#a
エコー'a'| tee b、ファイルbに「a」を書き込み、端末に出力(エコー出力)を表示します。
#echo 'a' | tee b
#a
#cat b
#a
を使用tee
して、出力を分割しましょう。あなたはそれを見ることができます(あなたが見ているttyにstdoutを向けることによって)、またはそれをさらなる処理に渡すことができます。パイプラインの中間段階を追跡するのに便利です。