by shigemk2

当面は技術的なことしか書かない

tee コマンド と > の違いがよく分からなかった

tee というコマンドがあるわけですね。

man 実行して調べてみると、

The tee utility copies standard input to standard output, making a copy in zero or more files. The output is unbuffered.

って書いていて、標準入力と標準出力をファイルに出力するコマンドのようだ。

これを利用した例として、

$ php fuaaa.php | tee fuaaa.log

と書くと、スクリプトの出力結果がそのままfuaaa.logファイルに保存される。

でもふと思ったけど、これって

$ php fuaaa.php > fuaaa.log

と何が違うの?
やってることは同じだぜ?

と思ったけど、teeにはaオプションがあり、
aオプションをつけると実行結果がファイルに追加される。

これに対し、>を使うと実行結果は常に上書きされる。
>> を使うと、追加になる。

あと、>はリダイレクトなので、通常ターミナルに出力されるものをファイルに出力するようにリダイレクトしているのだ。

追記

なんか色々と間違っていたので、ギリギリな感じで修正しました。