what is the difference between redirecting output with versus?
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).