名前付きパイプはファイルシステムを活用し仮想敵なパイプ処理を実現する機構です。
使い方
mkfifoコマンドで作成します。
$ mkfifo /path/to/pipe $ ls -la pipe prw-r--r-- 1 shuzo_kino staff 0 4 25 11:43 pipe $ file pipe pipe: fifo (named pipe)
ファイルタイプがpとかいう、見慣れないものになっているのが確認できます。
また、fileコマンドでは「named pipe」と明記までされています。
一度つくれば、あとは普通のパイプのようにつかってあげればよいです。
$ gzip -9 -c < /path/to/pipe > out.gz & $ zless vietnam.gz | grep ベトナム > /path/to/pipe
用が済んだらrmで破壊します。
$ rm /path/to/pipe
毎回破壊する手間こそあるものの、以前紹介したPIDを使う方法に比べて可視性が高いです。
一方、プロセス置換で書ける内容なら速度的な面で負けます。
というわけで、名前つきパイプは
- タイミングが不確定な場合
- 複数の処理から結果を受け付ける場合
に有効……のような気がします。