title: Understanding Unix process substitution behavior
body: <pre><code>awk '{print FILENAME, $0}' &lt;(ls)  # output:   /dev/fd/4 file
  awk '{print FILENAME, $0}' &lt; &lt;(ls) # output:   - file
  </code></pre>
  
  <p>In the above one-liners, the first one generates file descriptor and then the filename where as the second one generates the hypen (-) character and then the filename. Why this behavior?</p>