This question may sound a bit stupid, but I can not really see the difference between redirection and pipes.
Redirection is used to redirect the stdout/stdin/stderr, e.g.
ls > log.txt.
Pipes are used to give the output of a command as input to another command, e.g.
ls | grep file.txt.
But why are there two operators for the same thing?
Why not just write
ls > grep to pass the output through, isn't this just a kind of redirection also? What I am missing?