Rohrkette mit Geräten

Rohrkette mit Geräten

Soweit ich weiß, besteht die Möglichkeit, Pipes zwischen Anwendungen zu erstellen, wie diese hier:

$ step1 < input_file | step2 | step3 > result_file

Und Sie können auf Geräte wie /dev/urandom, /dev/zero. /dev/nullusw. zugreifen:

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

Meine Frage ist, ob es möglich ist, eine Pipe mit einem Blockgerät gleichzeitig als Eingabe und Ausgabe zu verwenden. Ich möchte beispielsweise eine lesen input_file, an senden /dev/example(was ist rw) und dann die Ausgabe in lesen output_file. Dies kann mit einem einzigen Befehl wie diesem erreicht werden:

$ cat input_file | /dev/example > output_file

oder

$ /dev/example < input_file > output_file

oder wird empfohlen, dies mit zwei Befehlen zu tun?

PS: Vielleicht schreibe ich die Befehle falsch oder mache Syntaxfehler. Bitte lassen Sie mich wissen, wie ich es bekomme. Ich verwende shoder bash, ich weiß nicht, wie man andere Konsolen verwendet. Wenn ich mich nicht sicher bin, lassen Sie es mich wissen, da Englisch nicht meine Muttersprache ist.

Antwort1

Was Sie geschrieben haben, ergibt keinen Sinn: /dev/exampleEs handelt sich um eine Datei, nicht um ein Programm oder eine Pipe. Wenn Sie Daten auf ein Gerät schreiben, werden sie nicht über das Gerät an ein anderes Programm weitergeleitet.

Beispielsweise werden Daten, die in geschrieben werden, /dev/audioüber Lautsprecher wiedergegeben. Wenn Sie Daten von lesen /dev/audio, erhalten Sie Daten, die über das Mikrofon aufgezeichnet wurden. Es besteht keine Beziehung zwischen dem, was über die Lautsprecher wiedergegeben wird, und dem, was mit dem Mikrofon aufgezeichnet wird.

verwandte Informationen