Corrente de tubos com dispositivos

Corrente de tubos com dispositivos

Pelo que eu sei, você pode criar canais entre aplicativos, como este:

$ step1 < input_file | step2 | step3 > result_file

E você pode acessar dispositivos como /dev/urandom,. , etc:/dev/zero/dev/null

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

Minha pergunta é: é possível fazer um tubo com um dispositivo de bloco de entrada e saída ao mesmo tempo? Por exemplo, quero ler a input_file, enviar para /dev/example(que é rw) e depois ler sua saída em output_file. Pode ser alcançado com um único comando como este:

$ cat input_file | /dev/example > output_file

ou

$ /dev/example < input_file > output_file

ou é aconselhável fazer em dois comandos?

PS: Talvez eu esteja digitando incorretamente os comandos ou cometendo erros de sintaxe, por favor, deixe-me saber como fazer isso. Eu uso shor bash, não sei usar outros consoles. Se não estiver claro, avise-me, pois o inglês não é minha língua materna.

Responder1

O que você escreveu não faz sentido: /dev/exampleé um arquivo, não um programa ou um canal. Se você gravar dados em um dispositivo, eles não passarão pelo dispositivo e serão enviados para outro programa.

Por exemplo, os dados gravados /dev/audiosão reproduzidos em alto-falantes. Se você ler dados de /dev/audio, você obterá dados gravados no microfone. Não há relação entre o que é tocado nos alto-falantes e o que é gravado no microfone.

informação relacionada