デバイス付きパイプチェーン

デバイス付きパイプチェーン

私の知る限りでは、次のようなアプリケーション間でパイプを作成する機能があります。

$ step1 < input_file | step2 | step3 > result_file

/dev/urandomまた、、など/dev/zeroのデバイスにもアクセスできます/dev/null

$ cat /dev/urandom > "output_file"
$ someprog > /dev/null

私の質問は、ブロック デバイスを使用して、入力と出力の両方を同時に行うパイプを作成できるかどうかです。たとえば、 を読み取り、 ( )input_fileに送信し、その出力を に読み取りたいとします。これは、次のように 1 つのコマンドで実現できます。/dev/examplerwoutput_file

$ cat input_file | /dev/example > output_file

または

$ /dev/example < input_file > output_file

それとも 2 つのコマンドで実行することをお勧めしますか?

PS: コマンドのスペルミスか構文エラーがあるかもしれませんので、入手方法を教えてください。 または を使用していますshbash、他のコンソールの使い方はわかりません。英語は母国語ではないので、よくわからない場合はお知らせください。

答え1

あなたが書いたものは意味をなさない:/dev/exampleはファイルであり、プログラムやパイプではありません。デバイスにデータを書き込む場合、そのデータはデバイスを通過して別のプログラムに送信されるわけではありません。

たとえば、 に書き込まれたデータは/dev/audioスピーカーで再生されます。 からデータを読み取ると/dev/audio、マイクに録音されたデータが得られます。スピーカーで再生される内容とマイクで録音される内容の間には関係がありません。

関連情報