Ich habe lange Zeit Pipes und Redirects verwendet und festgestellt, dass ich nicht genau weiß, wie sie sich unterscheiden. Ich weiß nur, dass Sie> verwenden, wenn Sie die Ausgabe in einer Datei speichern möchten. Andernfalls verwenden Sie meistens nur |. Kann jemand den Unterschied zwischen Pipes und Redirects erklären?
22
Antworten:
Beide machen dasselbe Grundlegende; Sie leiten einen Dateideskriptor des ausgeführten Prozesses um. Der Unterschied liegt im Wie. Eine Pipe verbindet die Standardausgabe eines Prozesses mit der Standardausgabe eines anderen Prozesses, wohingegen die Umleitung von / zu einer Datei (
>
von Standardausgabe zu einer Datei,<
von einer Datei zu Standardausgabe) erfolgt.quelle
/dev/fd
. Wenn Sie beispielsweise ausführenecho foo > >(somecommand)
, wird es auf erweitertecho foo > /dev/fd/3
. Es ist immer noch Umleitung, aber zu einem Prozess.