At Tue, 6 Oct 2020 23:14:57 -0400, John Cowan <cowan(a)ccil.org> wrote:
Subject: Re: [TUHS] Origins of globbing
Multics had support for * and ?, but I don't know when that was added or if
it was there from the beginning. Multics filenames, unlike DEC ones, allow
multiple dots, which are treated specially by these characters: neither ?
nor * can match a dot, but ** can. So perhaps they got into Unix from
Multics after all. Stratus VOS is another direct descendant of Multics,
but I don't know if it has globs.
Multics called them "starnames".
I don't know when they were added, but mention of "starname" support
appears in some of the very early technical bulletins, e.g. MTP-042 from
February 1974.
Interestingly in Multics starname expansion was/is always the
responsibility of the application, not the shell.
This has its advantages, such as in the "help" command where the user
can find help without knowing exactly how to spell what they're looking
for. In fact when I first learned long ago that the Unix shell did the
expansion I remember immediately thinking of some of these issues, as by
that time I had already learned something of Multics.
It is also used to good advantage in Multics Emacs without having to
have Emacs re-implement some part of the shell, or indeed without having
to call the shell, or some part of the shell. (Honeywell Bull notes
about differences between Multics and Unix also indicate that '$' was
not used for variable expansion, but there were other ways to do it on
Multics.)
On the other hand the Multics shell could and was/is modifiable or
replaceable by the user, so it wouldn't have been too hard to do
starname expansion in a shell implementation as well.
Also, given the way the Multics shell did command substitution (pretty
much right from the beginning, IIUC, and for sure by 1968), it would
also be trivial to use something like V6 "glob" to do starname expansion
for commands that didn't do it themselves.
--
Greg A. Woods <gwoods(a)acm.org>
Kelowna, BC +1 250 762-7675 RoboHack <woods(a)robohack.ca>
Planix, Inc. <woods(a)planix.com> Avoncote Farms <woods(a)avoncote.ca>