Unix is not an acceptable Unix
Interesting examples, especially in light of the recent debates about Unix shells and PowerShell.<p>In PowerShell, the `ls` command <i>is</i> a simple command that produces output without flags to control output format, ordering or filtering. Like with higher order functional programming, those tasks are delegated to cmdlets like Format-List, Format-Table, Select-Object, Where-Object.<p>Some PowerShell examples:<p>To list the files and directories (children) of a directory:<p><pre><code>    ls
</code></pre>
To get just the names or the full path:<p><pre><code>    ls | select Name
    ls | select FullName
</code></pre>
To discover <i>which</i> properties are available from `ls`:<p><pre><code>    ls | gm
</code></pre>
To select only files larger than 200MB:<p><pre><code>    ls | ? Length -gt 200MB
</code></pre>
(ls is alias for Get-ChildItem, gm is alias for Get-Member, ? is alias for Where-Object)<p>It is somewhat ironic that PowerShell is more true to the principle of "do one thing and do it well" than the Unix shells.