
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 sh
or 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/audio
sã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.