195 lines
6.7 KiB
Markdown
195 lines
6.7 KiB
Markdown
---
|
||
created_at: '2015-10-02T12:13:44.000Z'
|
||
title: The History of the Design of Unix’s Find Command (1995)
|
||
url: http://doc.cat-v.org/unix/find-history
|
||
author: pmarin
|
||
points: 58
|
||
story_text:
|
||
comment_text:
|
||
num_comments: 73
|
||
story_id:
|
||
story_title:
|
||
story_url:
|
||
parent_id:
|
||
created_at_i: 1443788024
|
||
_tags:
|
||
- story
|
||
- author_pmarin
|
||
- story_10317964
|
||
objectID: '10317964'
|
||
year: 1995
|
||
|
||
---
|
||
[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/
|
||
|