Me molesta haber usado Unix en la universidad y ahora trabajar en el lado de Windows. ¿Cuál es la historia detrás de esta decisión? Alguien sabe por qué funcionó de esta manera?
Me molesta haber usado Unix en la universidad y ahora trabajar en el lado de Windows. ¿Cuál es la historia detrás de esta decisión? Alguien sabe por qué funcionó de esta manera?
Respuestas:
Unix se introdujo /
como el separador de directorios en algún momento alrededor de 1970. No sé por qué se eligió exactamente este personaje; el sistema ancestro que usaba Multics >
, pero los diseñadores de Unix ya lo habían usado >
junto con la <
redirección en el shell (consulte ¿Por qué el directorio raíz se denota con un /
signo? ).
MS-DOS 2.0 se introdujo \
como el separador de directorios a principios de la década de 1980. La razón /
por la que no se usó es que MS-DOS 1.0 (que no admitía directorios en absoluto) ya estaba usando /
para introducir opciones de línea de comandos. Se tomó este uso de /
de CP / M , que tomó de VMS . Puede leer una explicación más exhaustiva de por qué se hizo esa elección en el blog de Larry Osterman (MS-DOS incluso tuvo la opción de cambiar brevemente el carácter de opción -
y el separador de directorio /
, pero no se mantuvo).
/
es reconocido por la mayoría de las API de nivel de programador (en todas las versiones de DOS y Windows). Por lo tanto, a menudo, pero no siempre, puede salirse con la suya /
como separador de directorios en Windows. Una excepción notable es que no se puede usar /
como separador después del \\?
prefijo que (incluso en Windows 7) es la única forma de especificar una ruta usando Unicode o que contiene más de 260 caracteres.
Algunos elementos de la interfaz de usuario son compatibles /
como un separador de directorios en Windows, pero no todos. Algunos programas simplemente pasan los nombres de archivo a la API subyacente, por lo que son compatibles /
e \
indiferentes. En el intérprete de comandos (en command.com
o cmd
), puede usarlo /
en muchos casos, pero no siempre; esto depende en parte de la versión de Windows (por ejemplo, cd /windows
funciona en XP y 7 pero no en Windows 9x). El cuadro de entrada de la ruta del Explorador acepta /
(al menos desde XP en adelante; probablemente porque también acepta URL). Por otro lado, el cuadro de diálogo abierto de archivo estándar rechaza las barras .
/
es reconocido como un separador de directorio por la línea de comandos de MS-DOS o Windows.
/
se acepta con precisión en la línea de comando? Por ejemplo, ¿qué hace dir /p
? y dir c:/p
? y c:/windows/notepad.exe
? y start /windows/notepad.exe
? etc. (No tengo una máquina Windows aquí para probar.)
/
probablemente se usó como el separador de directorio en UNIX porque era una tecla fácil (sin desplazamiento) para golpear en un teletipo. Los caracteres especiales no desplazados eran : - ; , . /
.
/
(y -
para conmutadores) como Xenix, e inspirado por Xenix, pero IBM lanzó antes de que Microsoft enviara a los OEM, e IBM utilizó ` (and
/ 'para conmutadores) y cambió la solicitud de A:
a A>
para que cambiaran la documentación predeterminada y enviada con errores (aún asumiendo /
/ -
) más una nota de que se cambió y por qué.
La API de Windows subyacente puede aceptar la barra diagonal inversa o la barra diagonal para separar los componentes de directorio y archivo de una ruta, pero la convención de Microsoft es usar una barra diagonal inversa, y las API que devuelven rutas colocan barra diagonal inversa.
MS-DOS 2.0 copió el sistema de archivos jerárquico de Unix y, por lo tanto, usó la barra diagonal, pero (posiblemente por insistencia de IBM ) agregó la barra diagonal inversa para permitir que las rutas se escriban en el shell de comandos mientras se mantiene la compatibilidad con MS-DOS 1.0 y CP / M donde la barra diagonal era el indicador de opción de línea de comandos.
Comparar
dir/w
que muestra el directorio actual en formato ancho contra
dir\w
que ejecuta el w
archivo en el director dir
.
Referencias