What's the story behind our massive repitition of './foo' and 'cd ..'. Where do these two '.' and '..' come from? Where could they be seen as a way of navigating a file system tree for the first time?

I seem to have formulated this question a bit vague. Answers to earliest reference have been found, however, the question remains to why it is '.' and '..' instead of something else. If this is by coincidence, or something like the "point-to-point" answer, I don't know, but if anyone knows it would be way cool trivia.

+3  A: 

I'm sorry I can't answer properly, but I can recommend these links:

for some interesting historical notes on early file systems and their use.

Other than that, the earliest reference I've found is the 1974 paper "The UNIX Time-Sharing System" by Dennis Ritchie and Ken Thompson. The precursor of UNIX, Multics, also had hierarchical file systems and the notion of relative paths, but according to "Introduction to MULTICS" it used another notation for that.

Henrik Gustafsson
+1  A: 

I believe it was invented by Dennis Ritchie at Bell Labs in the early years of Unix.

Dong Hoon
+31  A: 

Excerpt from an interview with Ken Thompson (9-6-89):

Every time we made a directory, by convention we put it in another directory called directory - directory, which was dd. Its name was dd and that all the users directories and in fact most other directories, users maintain their own directory systems, had pointers back to dd, and dd got shortened into ‘dot-dot,’ and dd was for directory-directory.