覚えがあるなあ。本棚から探してきた。 古典的な論文 "The Evolution of the UNIX Time-sharing System" D.M.Ritchie に載ってる話だな。 「UNIXタイムシェアリング・システムの発展」という記事として 「UNIX原典」(パーソナルメディア)ISBN4-89362-014-2 に和訳が収録されてる。
The most memorable of these became evident soon after the new system came up and apparently worked. In the midst of our jubilation, it was discovered that the chdir (change current directory) command had stopped working. There was much reading of code and anxious introspection about how the addition of fork could have broken the chdir call. Finally the truth dawned: in the old system chdir was an ordinary command; it adjusted the current directory of the (unique) process attached to the terminal. Under the new system, the chdir command correctly changed the current directory of the process created to execute it, but this process promptly terminated and had no effect whatsoever on its parent shell! It was necessary to make chdir a special command, executed internally within the shell.