The History of the Design of Unix’s Find Command

The full explanation for find(1)’s bizarre design is still a mystery, but this fun little story, and Dennis Ritchie’s answer, shines some light on it:

Dear Mr. Ritchie,

 I heard a story from a guy in a UNIX sysadmin class, and was wondering
if it was true.

  The guy in this class told of a co-worker of his who was in a UNIX training
class that got involved in UNIX bashing.  You know, like why is the -i option
for grep mean ignore case, and the -f option for sort mean ignore case, and so
on.  Well, the instructor of the course decided to chime in and said something
like this:

  "Here's another good example of this problem with UNIX.  Take the find
command for example.  WHAT idiot would program a command so that you have to
say -print to print the output to the screen.  What IDIOT would make a command
like this and not have the output go to the screen by default."

   And the instructor went on and on, and vented his spleen...

   The next morning, one of the ladies in the class raised here hand, the
instructor called on her, and she proceeded to say something like this:

   "The reason my father programmed the find command that way, was because he
was told to do so in his specifications."

  I've always wondered if this story was true, and who it was who wrote
the find command.  In the Oct. 94 issue of Byte they had an article on "UNIX
at 25" which said that Dick Haight wrote the find command along with cpio,
expr, and a lot of the include files for Version 7 of UNIX.  I don't know
where to send this message directly to Dick Haight, and I would appreciate it
if you would forward it to him, if you are able.  If you can't, well then I
hope you liked the story.  I got your mail address from "The UNIX Haters
Handbook", and would like to add this to your Anti-Forward:

   Until that frozen day in HELL occurs, and the authors of that book write
   a better operating system, I'm sticking with UNIX.

                                           Sincerely,


                                           Dan Bacus
                                           nsc@edge.ercnet.com.


--------------------------

From daemon Thu Feb  9 02:22 GMT 1995
Return-Path: dmr@plan9.research.att.com
Received: from plan9.research.att.com ([192.20.225.252]) by nscsgi.nscedu.com (8.6
From: dmr@plan9.research.att.com
Message-Id:  <199502090222.CAA04283@nscsgi.nscedu.com>
To: danb
Date: Wed, 8 Feb 1995 21:20:30 EST
Subject: Re: story
Content-Type: text
Content-Length: 1031
Status: RO

Thanks for the story and the note.  Dick Haight was in what was
then probably called USG, for Unix Support Group (the name changed
as they grew).  Their major role was to support the system withing
AT&T, and later to turn it into a real commercial product.  He was indeed
one of the major people behind find and cpio.  This group was distinct from
the research area where the system originated, and we were somewhat put
off by the syntax of their things.  However, they were clearly quite useful,
and they were accepted.

Dick left AT&T some years ago and I think he's somewhere in South 
Carolina, but I don't have an e-mail address for him.  I'm not sure what
he thinks of find and cpio today.  That group always was more concerned
with specifications and the like than we were, but I don't know enough
about their internal interactions to judge how these commands evolved.
All of your story is consistent with what I know up to the punchline,
about which I can't render an opinion!

Thanks again for your note.

       Dennis

Emails found at http://johnmeister.com/CS/UNIX/letters.html