Por qué era '.' elegido para representar el directorio actual y '..' para el directorio padre?

Respuestas:

16

¡Dudo que encuentre una respuesta tan interesante como la pregunta tilde!

No estuve allí, pero ... es como una elipsis (...), que tiene sentido en contextos como cd ../../../there. Además, y especialmente mirando el antiguo teclado de terminal desde la caja tilde, no hay muchos caracteres elegibles para este propósito. No necesita cambiar ., tampoco. Es perfecto.

El hecho de que se use un prefijo de punto para archivos ocultos podría ser otra razón. Los archivos ocultos no se enumeran de forma predeterminada por herramientas como ls, por lo que tampoco lo son los esencialmente redundantes .y ... Redundante en el sentido de que no tiene sentido considerarlos junto con otros archivos; de lo contrario, ciertamente son útiles.

Resulta que puedo tenerlo al revés ... de wikipedia :

La noción de que los nombres de archivo precedidos por un '.' debería estar oculto es el resultado de un error de software en los primeros días de Unix. Cuando el especial '.' y las entradas de directorio '...' se agregaron al sistema de archivos, se decidió que el comando ls no debería mostrarlas. Sin embargo, el programa ls se escribió por error para excluir cualquier archivo cuyo nombre comenzara con un '.', En lugar de solo los archivos llamados '.' o '..'.

Esto resulta útil cuando se programa; ya que el sistema incluye. y ... en respuesta a los readdir()comandos de tipo (y los globos de shell), ignorarlos y los archivos ocultos se puede lograr de la misma manera.

Una opinión diferente sobre ese valor de uso se encuentra en la referencia de la cita de wikipedia. Por supuesto, toda la historia podría ser apócrifa ... es un poco difícil de creer que, por ejemplo, Dennis Ritchie supusiera que verificar el primer personaje estaría bien.

No estoy de acuerdo con el autor, sería mejor poner los archivos de configuración ocultos en su propio directorio en lugar de darles un prefijo universal. El prefijo es mucho más flexible, permitiendo directivas en árbol como .gitignorey .htaccess. Sea testigo de que los archivos de ese tipo también aparecen juntos cuando se clasifican lexicográficamente, por lo que tal vez esto fue a propósito después de todo .

encerrada dorada
fuente
3

Principalmente la misma respuesta que @Panos 'en stackoverflow :

En resumen, evolucionó desde dy dd(la directory y la directory de la directory) que fueron creados por los usuarios a mano. dse convirtió en punto , y aquellos .y ..fueron creados por la mkdirutilidad (setuid después de enlazar directorios ya no estaba permitido por la mera usuario) y luego por la mkdir llamada al sistema.

Extracto de una entrevista con Ken Thompson (1989-09-06):

MSM : Pero para el usuario se vería más o menos lo mismo que una jerarquía de directorios.

Thompson : No, el primero fue un DG. De hecho, ni siquiera era acíclico. Si comprende el sistema de archivos UNIX, fue ... estaba la lista I, que es una definición de todos los archivos del sistema. Y luego, algunos de esos archivos, eran directorios que solo contenían el nombre y el número I. No hay nada allí que lo limite a un árbol. Entonces, de hecho, no era jerárquico en absoluto.

MSM : Ya veo.

Thompson : Y no lo restringimos a un árbol. Estábamos experimentando con varias topologías. Lo que terminamos haciendo es convertirnos en concreto y forzar las topologías que de hecho eran las topologías que surgieron por convención de ese sistema. El ... Cada vez que creamos un directorio, por convención lo colocamos en otro directorio llamado directorio - directorio , que era dd. Su nombre era dd y que todos los directorios de los usuarios y, de hecho, la mayoría de los otros directorios, los usuarios mantienen sus propios sistemas de directorios, tenían punteros de nuevo a dd, y dd se acortó en punto-punto, y dd era para directorio-directorio. Era el lugar de regreso a donde podía llegar a todos los otros directorios en el sistema para mantener este tazón de espagueti. Entonces, me refiero a esta toba en varias formas, lo cual fue estrictamente convencional en esta implementación de DG de un conjunto aleatorio de directorios y archivos que se vio forzado a una tipología que mantuvimos. Cuando comenzamos a escribir cosas como sistemas de archivos que verifican programas y otras cosas, el bloqueo de los directorios de los tazones de espagueti y la búsqueda de cosas desarticuladas, quiero decir que disgregarías algo y nunca lo recuperarías, porque sabes que lo has perdido. Esos problemas se volvieron casi insuperables, por lo que en la siguiente implementación forzamos una tipología más fuerte que eso.

Stéphane Chazelas
fuente