173 lines
6.3 KiB
Markdown
173 lines
6.3 KiB
Markdown
|
[Source](http://doc.cat-v.org/unix/find-history "Permalink to The History of the Design of Unix's Find Command")
|
|||
|
|
|||
|
# The History of the Design of Unix's Find Command
|
|||
|
|
|||
|
[quotes][1] | [docs][2] | [repo][3] | [golang][4] | [sam][5] | [man][6] | [acme][7] | [Glenda][8] | [9times][9] | [harmful][10] | [9P][11] | [cat-v.org][12]
|
|||
|
|
|||
|
Related sites: | [site updates][13] | [site map][14] |
|
|||
|
|
|||
|
# [/sys/doc/ Documentation archive][15]
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Sections:
|
|||
|
|
|||
|
* ›[ bell labs/][16]
|
|||
|
* ›[ economics/][17]
|
|||
|
* ›[ feynman/][18]
|
|||
|
* ›[ henry spencer/][19]
|
|||
|
* ›[ inferno/][20]
|
|||
|
* ›[ plan 9/][21]
|
|||
|
* ›[ political science/][22]
|
|||
|
* ›[ programming/][23]
|
|||
|
* »[_ unix/_][24]
|
|||
|
* * ›[ exit mpx/][25]
|
|||
|
* »[_ find history_][26]
|
|||
|
* ›[ for poets/][27]
|
|||
|
* ›[ oral history/][28]
|
|||
|
* ›[ pipes/][29]
|
|||
|
* ›[ proc/][30]
|
|||
|
* ›[ typesetting/][31]
|
|||
|
* ›[ unix before berkeley/][32]
|
|||
|
* ›[ unix reader/][33]
|
|||
|
* ›[ v0/][34]
|
|||
|
* ›[ v10/][35]
|
|||
|
* ›[ v6/][36]
|
|||
|
* ›[ v8/][37]
|
|||
|
* ›[ xml/][38]
|
|||
|
|
|||
|
# The History of the Design of Unix’s Find Command
|
|||
|
|
|||
|
The full explanation for [find(1)][39]’s bizarre design is still a mystery, but this fun little story, and [Dennis Ritchie][40]’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>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
[Powered by werc][41]
|
|||
|
|
|||
|
[1]: http://quotes.cat-v.org
|
|||
|
[2]: http://doc.cat-v.org
|
|||
|
[3]: http://repo.cat-v.org
|
|||
|
[4]: http://go-lang.cat-v.org
|
|||
|
[5]: http://sam.cat-v.org
|
|||
|
[6]: http://man.cat-v.org
|
|||
|
[7]: http://acme.cat-v.org
|
|||
|
[8]: http://glenda.cat-v.org
|
|||
|
[9]: http://ninetimes.cat-v.org
|
|||
|
[10]: http://harmful.cat-v.org
|
|||
|
[11]: http://9p.cat-v.org/
|
|||
|
[12]: http://cat-v.org
|
|||
|
[13]: http://cat-v.org/update_log
|
|||
|
[14]: http://doc.cat-v.org/sitemap
|
|||
|
[15]: http://doc.cat-v.org/
|
|||
|
[16]: http://doc.cat-v.org/bell_labs/
|
|||
|
[17]: http://doc.cat-v.org/economics/
|
|||
|
[18]: http://doc.cat-v.org/feynman/
|
|||
|
[19]: http://doc.cat-v.org/henry_spencer/
|
|||
|
[20]: http://doc.cat-v.org/inferno/
|
|||
|
[21]: http://doc.cat-v.org/plan_9/
|
|||
|
[22]: http://doc.cat-v.org/political_science/
|
|||
|
[23]: http://doc.cat-v.org/programming/
|
|||
|
[24]: http://doc.cat-v.org/unix/
|
|||
|
[25]: http://doc.cat-v.org/unix/exit_mpx/
|
|||
|
[26]: http://doc.cat-v.org/unix/find-history
|
|||
|
[27]: http://doc.cat-v.org/unix/for-poets/
|
|||
|
[28]: http://doc.cat-v.org/unix/oral-history/
|
|||
|
[29]: http://doc.cat-v.org/unix/pipes/
|
|||
|
[30]: http://doc.cat-v.org/unix/proc/
|
|||
|
[31]: http://doc.cat-v.org/unix/typesetting/
|
|||
|
[32]: http://doc.cat-v.org/unix/unix-before-berkeley/
|
|||
|
[33]: http://doc.cat-v.org/unix/unix-reader/
|
|||
|
[34]: http://doc.cat-v.org/unix/v0/
|
|||
|
[35]: http://doc.cat-v.org/unix/v10/
|
|||
|
[36]: http://doc.cat-v.org/unix/v6/
|
|||
|
[37]: http://doc.cat-v.org/unix/v8/
|
|||
|
[38]: http://doc.cat-v.org/xml/
|
|||
|
[39]: http://man.cat-v.org/unix_8th/1/find
|
|||
|
[40]: http://genius.cat-v.org/dennis-ritchie/
|
|||
|
[41]: http://werc.cat-v.org/
|
|||
|
|