How does a FIFO (named pipe) differs from a regular pipe (|)? As I understand from [Wikipedia][1], unlike a regular pipe, a FIFO pipe "keeps living" after the process has ended and can be deleted sometime afterwards.

But if f the process is based on a shell command containing a pipe (`cat x | grep y`), we could "keep it alive after the process" if we store it in a variable or a file, isn't it then a FIFO?

Also, a regular pipe also has the **first stdout it gets, as stdin** for another command, so isn't it also a kind of first in first out pipe?

 [1]: https://en.wikipedia.org/wiki/Named_pipe