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