Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've been using pipes and redirects for a long time and just realized that I don't know exactly how they are different. I just know that if you want to store the output in a file, then you use >. Otherwise most of the time you just use |. Can someone explain the difference between pipes and redirects?

share|improve this question
possible duplicate of Is backwards redirection the same as a pipe? – Wuffers May 5 '11 at 3:37
up vote 10 down vote accepted

The both do the same basic thing; they redirect a file descriptor of the process executed. The difference lies in how. A pipe connects the stdout of one process to the stdin of another, whereas redirection redirects from/to a file (> from stdout to a file, < from a file to stdin).

share|improve this answer
The distinction sort of blurs in Linux and other systems that have /dev/fd. For example, if you run echo foo > >(somecommand), it will expand to echo foo > /dev/fd/3. It's still redirection, but to a process. – grawity Apr 30 '11 at 18:43

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .