From mboxrd@z Thu Jan 1 00:00:00 1970 From: krewat@kilonet.net (Arthur Krewat) Date: Fri, 24 Mar 2017 17:46:34 -0400 Subject: [TUHS] 'Command subcommand ...' history In-Reply-To: <29D69C88-7B0A-40F9-AF4D-68705E8FC514@tfeb.org> References: <29D69C88-7B0A-40F9-AF4D-68705E8FC514@tfeb.org> Message-ID: The current SCCS certainly takes subcommands, but I have no idea if it started out that way. ifconfig is more a set of flags than subcommands. And don't get me started about dd - who wrote that anyway? Must have been an IBM guy :) dd breaks all the norms for using shell wildcard expansions. You can't do: dd if=*.tar of=/dev/rmt/0cbn bs=128k Assuming, of course, you only had one tar file you wanted to write to tape. On 3/24/2017 11:42 AM, Tim Bradshaw wrote: > Lots of tools now seem to use this strategy: there's some kind of wrapper which has its own set of commands (which in turn might have further subcommands). So for instance > > git remote add ... > > is a two layer thing. > > Without getting into an argument about whether that's a reasonable or ideologically-correct approach, I was wondering what the early examples of this kind of wrapper-command approach were. I think the first time I noticed it was CVS, which made you say `cvs co ...` where RCS & SCCS had a bunch of individual commands (actually: did SCCS?). But I think it's possible to argue that ifconfig was an earlier example of the same thing. I was thinking about dd as well, but I don't think that's the same: they're really options not commands I think. > > Relatedly, does this style originate on some other OS? > > --tim > > (I realise that in the case of many of these things, particularly git, the wrapper is just dispatching to other tools that do the werk: it's the command style I'm interested in not how it's implemented.) >