Process Substitution
これは Process Substitution という名前の機能です。
ちなみに echo <(command) すると /dev/fd/63 などと表示されます。 これは一時的に作られたファイルディスクリプタの名前で、そのファイルディスクリプタは実行されたcommandの標準出力に繋がっており、他のプログラムからはファイルと同じように扱うことが出来る、というわけです。 とっても便利なので、覚えといて損はないです。 標準出力をファイルのように扱う方法、例えば2つのコマンドの出力結果のdiffを取るとか – Qiita
/dev/fd/62 によって、gzip -cd hello1.sh.gzで解凍した内容にアクセスできる。
/dev/fd/63 によって、gzip -cd hello2.sh.gzで解凍した内容にアクセスできる。
/dev/fd/62 や /dev/fd/63 は、まるでファイルのようだけど、ハードディスク上に保存される訳ではない。
/dev/fd/62 や /dev/fd/63 でアクセスされるのは、メモリ上に展開されたデータである。
プロセス置換とリダイレクションでプログレスバーを操作 – ザリガニが見ていた…。
There is no named pipe here. /dev/fd/63 is an anonymous pipe
Why does process substitution result in a file called /dev/fd/63 which is a pipe? –
/dev/fd/63
<(何かのコマンド) の実体は、ファイル(ファイルディスクリプタ)みたいだ。 Redirection , File Descriptor and Pipe in the Shell: 迷子の古事記
echo につかってみると、何をやっているのかが分かり易い。
bash-4.1$ echo <(./foo) <(./bar) <(./baz) /dev/fd/63 /dev/fd/62 /dev/fd/61 Process Substitutionとexec redirectで画面出力を加工するときの問題点と解決、そして無限に寝る話 – Qiita
匿名パイプは、ローカル コンピューターでのプロセス間通信を実現します。 名前付きパイプと比較して提供する機能は少なくなりますが、オーバーヘッドも小さくなります。 匿名パイプを使用して、ローカル コンピューター上で容易にプロセス間通信を実行できます。 匿名パイプを使用してネットワーク経由の通信を行うことはできません。
方法: ローカルのプロセス間通信で匿名パイプを使用する
https://msdn.microsoft.com/ja-jp/library/bb546102(v=vs.110).aspx
匿名パイプは、ローカル コンピューターでのプロセス間通信を実現します。 匿名パイプは、名前付きパイプと比較してオーバーヘッドは小さくなりますが、提供するサービスも限定されます。
.NET Framework でのパイプ操作
https://msdn.microsoft.com/ja-jp/library/bb762927(v=vs.110).aspx


