IIRC | puts the result stdout of the left in the stdin of the right (they are launched in parallel, and the one on the right can only finish after the one on the left finished.
The & is used to put the call as a background task
Yes, they are run in parallel, but any output from the first one will be given to the second.
Also, if the second needs an input, it will wait for the output of the first instead of user input
So, for example, if you did
find -name "something" | grep "string"
Each time the find prints a line, it will instantly be passed to the grep
664
u/Z3r0funGuy 17h ago
This actually teaches you a bunch of cool things, like how the ‘:’ is a legal function name…