エミュー

学んだことを書いていきます

パイプとリダイレクトについて

パイプ

$ echo foofoo | mail hoge@example.com  #  出力をmailコマンドに渡す

$ ps aux | grep bash  # psの出力をgrepコマンドに渡す
1437   0.0  0.0  2461044    928 s000  S    10:20PM   0:00.13 -bash
4463   0.0  0.0  2443044    804 s000  S+   11:17PM   0:00.00 grep bash

次のコマンドに出力を受け渡すのがパイプ。

リダイレクト

$ echo 1st > test.txt
$ cat test.txt
1st
$ echo 2nd > test.txt
$ cat test.txt
2nd  # '>'は上書き

$ echo 3rd >> test.txt
$ cat test.txt
2nd
3rd  # '>>'では追記される
$ echo 4th >> test.txt
$ cat test.txt
2nd
3rd
4th

ファイルに出力するのがリダイレクト。'>'だと上書き、'>>'だと追記される。'>>'を'>'で書き間違えるとヤバそう。

参考

リダイレクションの「>」「 >>」とパイプ「 | 」の違い。 - Qiita