Esta questão é uma duplicata e pertence a unix.stackexchange.com.
Em suma, ainda assim, o documento Idioma de Comando da Shell do OpenGroup é relativamente vago nos detalhes sobre " oleodutos ":
A pipeline is a sequence of one or more commands separated by the control operator '|'. The standard output of all but the last command shall be connected to the standard input of the next command.
The format for a pipeline is:
[!] command1 [ | command2 ...]
The standard output of command1 shall be connected to the standard input of command2. The standard input, standard output, or both of a command shall be considered to be assigned by the pipeline before any redirection specified by redirection operators that are part of the command (see Redirection).
If the pipeline is not in the background (see Asynchronous Lists), the shell shall wait for the last command specified in the pipeline to complete, and may also wait for all commands to complete.
Observe que, embora os dados fluam claramente de "da esquerda para a direita" no pipeline, não há garantia sobre o agendamento em si.
Veja também: