title: Fake output stream type
body: <p>By default certain programs format their output according to the type of the stream they write to. For example, the output of <code>ls</code> and <code>ls &gt; file</code> looks differently. I'd like to know how this is achieved by a program. Additionally, is there a way by which we can trick such programs as if the output stream is a terminal where it actually is a file (especially when they don't have any options that affect output formatting)?</p>