Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Ok there's a really good point here about when commands 'layout' shifted from:

`command -function`

To

`command function -option`

Example:

Why is it:

ssh -l bob myhost.com

Vs

ssh login bob myhost.com



The "subcommand" approach is the one popularised by Git. It makes sense for complex tools that incorporate many different actions. Every action is essentially its own CLI tool. That approach isn't suited well to the traditional Unix mindset where a single tool is supposed to do one thing and do it well – "ls" is meant to list files and "tr" is meant to replace characters, and you should be able to pipe them together.


Not to challenge anything you said, but rather expand upon it.. git just followed a grand tradition of software version control systems in general (sccs/cvs/svn/..): https://lobste.rs/s/dnazns/contextual_clis#c_b7rl9k




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: