title: I'm learning bash and had confusion understanding how redirection operators work (the order of evaluation)
body: <p>I was going through the bash reference manual and the below commands does
  'ls &gt; dirlist 2&gt;&amp;1' - the command directs both output and std err to the file dirlis (from the bash reference manual).</p>
  <p>In the above command, the last part of the expression '2&gt;&amp;1', why is no pipe or redirection operator needed before '2&gt;&amp;1'? i.e. 'ls &gt; dirlist &lt; 2&gt;&amp;1'</p>
  <p>2&gt;&amp;1 - is redirect std err to std out, ls &gt; dirlist mean (redirect output of ls to dirlist). how does the 2&gt;&amp;1 affect ls &gt; dirlist(since this should already be completed left to right command execution)?</p>