Cadeia de tubos com dispositivos

1

Até onde eu sei, você pode fazer cachimbos entre aplicativos, como este:

$ step1 < input_file | step2 | step3 > result_file

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

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

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

$ cat input_file | /dev/example > output_file

ou

$ /dev/example < input_file > output_file

ou é aconselhável fazer em dois comandos?

PS: Talvez eu tenha digitado errado os comandos ou tenha cometido erros de sintaxe, por favor, deixe-me saber como obtê-lo. Eu uso sh ou bash , não sei usar outros consoles. Se eu não for claro, deixe-me saber como o inglês não é minha língua materna.

    
por SonicARG 28.03.2014 / 03:58

1 resposta

2

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, ele não passará pelo dispositivo e sairá para outro programa.

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

    
por 28.03.2014 / 04:06