Трубчатая цепь с устройствами

Трубчатая цепь с устройствами

Насколько мне известно, можно создавать каналы между приложениями, например, как это:

$ step1 < input_file | step2 | step3 > result_file

И вы можете получить доступ к таким устройствам, как /dev/urandom, /dev/zero. /dev/null, и т. д.:

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

Мой вопрос в том, возможно ли сделать канал с блочным устройством как для ввода, так и для вывода одновременно? Например, я хочу прочитать input_file, отправить в /dev/example(который является rw), а затем прочитать его вывод в output_file. Это можно сделать одной командой, например так:

$ cat input_file | /dev/example > output_file

или

$ /dev/example < input_file > output_file

или это рекомендуется делать в две команды?

PS: Возможно, я неправильно пишу команды или делаю синтаксические ошибки, пожалуйста, дайте мне знать, как это сделать. Я использую shили bash, я не знаю, как использовать другие консоли. Если я неясно выразился, дайте мне знать, так как английский не мой родной язык.

решение1

То, что вы написали, не имеет смысла: /dev/exampleэто файл, а не программа или канал. Если вы записываете данные на устройство, они не проходят через устройство и не передаются в другую программу.

Например, данные, записанные в /dev/audioвоспроизводятся на громкоговорителях. Если вы считываете данные с /dev/audio, вы получаете данные, записанные на микрофоне. Нет никакой связи между тем, что воспроизводится на громкоговорителях, и тем, что записывается с помощью микрофона.

Связанный контент