これは実際にはパイピングではなく、入力ストリームと出力ストリームのリダイレクトです。
パイピングは、あるプロセスの標準出力を取得し、それを別のプロセスの標準入力に接続します。たとえば、次のようになります。
seq 1 5 | sort -r
これは、1 から 5 までの数字を (その順序で) 生成し、次のトランスクリプトのように逆の順序で並べ替えます。
pax> seq 1 5
1
2
3
4
5
pax> seq 1 5 | sort -r
5
4
3
2
1
シーケンス:
prog <infile >outfile
progプロセスでプログラムを実行し、ファイルから標準入力を取得して、標準出力をinfile ファイルに送信しoutfileます。関与するプロセスは 1 つだけです。
「標準入力の代わりにファイル b のデータをプログラム a への入力に使用し、プログラム a の出力を標準出力の代わりにファイル c に書き込む」には、次のようにします。
a <b >c
あなたが持っているのとまったく同じです。私の例では、リダイレクト文字 (<または) とファイル名の間にスペースがないことに注意してください。「出力をファイルに送信する」ことを意味する>ため、これにより関係が明確になると思います。>xyzzyxyzzy
何をするかについての誤った主張a < b > c(「ファイルbのデータを標準入力の代わりにプログラムaへの入力に使用し、プログラムbの出力を標準出力の代わりにファイルcに書き込む」)は、個別のコマンドに適しています:
a <b ; b >c
aとbプログラムの間に実際の接続はありません。