
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/null
usw. 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 sh
oder 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/example
Es 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.