Example of using named pipes in Linux Bash

Drew LeSueur picture Drew LeSueur · Nov 6, 2010 · Viewed 84.4k times · Source

Can someone post a simple example of using named pipes in Bash in Linux?

Answer

Brian Clements picture Brian Clements · Nov 6, 2010

One of the best examples of a practical use of a named pipe...

From http://en.wikipedia.org/wiki/Netcat:

Another useful behavior is using netcat as a proxy. Both ports and hosts can be redirected. Look at this example:

nc -l 12345 | nc www.google.com 80

Port 12345 represents the request.

This starts a nc server on port 12345 and all the connections get redirected to google.com:80. If a web browser makes a request to nc, the request will be sent to google but the response will not be sent to the web browser. That is because pipes are unidirectional. This can be worked around with a named pipe to redirect the input and output.

mkfifo backpipe
nc -l 12345  0<backpipe | nc www.google.com 80 1>backpipe