The growth of command-line options: 1979-2017

I stumbled upon an article (, that explores the dramatic growth of the number of command line options in most popular Unix commands between 1979 and 2017 and explains why it may have happened. I found it very interesting and instructive to read.

I am personally a big fan of “do one thing and do it well” phylosophy, but I concur that it does not always work. E.g. I am really grateful for grep -r for recursive “find in files” option, so I don’t have to write something like find . -type f | xargs grep.

I was also unpleasantly surprised by behavior of git blame mentioned in the article: it turns out that git blame -C -C means “dig deeper in history than git blame -C, and git blame -C -C -C means “dig even deeper”. This is not how options usually work in Unix, I would expect something like git blame -C 2 or git blame -C --deep.


  1. The link to the original research is broken.


Leave a Reply

Your email address will not be published. Required fields are marked *