Por qué no se puede crear una carpeta llamada CON en Windows o MS-DOS?

Esto se remonta a los primeros días del DOS.

CON es una palabra reservada en el sistema operativo DOS (y por lo tanto Windows moderno debido a la compatibilidad con versiones anteriores).

En realidad es la abreviatura de "Console". La Consola en DOS se refiere a la entrada del teclado y la salida de la pantalla local. Mis mejores recuerdos de hacer uso de CON serían dentro del comando Copy del DOS, como en:

COPY CON MYFILE.TXT

Esto le permitirá crear un archivo de texto rápido y sucio (llamado MYFILE.TXT en este caso) sin el uso de un editor de texto. Inmediatamente después de escribir este comando, el prompt del DOS es reemplazado por un cursor parpadeante. A continuación, puede introducir el texto directamente desde el teclado, y terminar con Control-Z cuando haya terminado.

Una vez hecho esto, el DOS responderá con:

1 Archivo(s) Copiado(s).

Y su archivo se creará en el directorio actual.

Esto era muy útil para crear cosas como archivos por lotes y scripts de configuración cortos. Sin embargo, adolece de la grave limitación de que no se pueden corregir los errores una vez que se pulsa enter y se pasa a la siguiente línea.

Puede parecer extraño hoy en día que se recurra a crear un archivo de esta manera, ya que cualquier editor básico basado en texto es infinitamente más eficiente. Sin embargo, hay que recordar que en los primeros días del DOS, ¡no había discos duros! Por lo tanto, cualquier comando que se ejecutara tenía que ser un comando nativo de DOS, o el programa ejecutable tenía que residir en algún lugar de un disquete que estuviera en la máquina. Esto no siempre era conveniente. Por lo tanto, copiar archivos desde la consola era una parte de su vida.

También puede invertir este comando, como en:

COPY MYFILE.TXT CON

que resultará en el contenido de MYFILE.TXT que se muestra en la pantalla.

Esto fue/es casi nunca utilizado, sin embargo, como:

TYPE MYFILE.TXT

hará esencialmente lo mismo, y es más corto. Y por supuesto, si el archivo tiene más de 25 líneas, entonces es mucho más útil canalizar la salida al filtro More, como en:

TYPE MYFILE.TXT | MORE

que mostrará el contenido del archivo 24 líneas a la vez, haciendo una pausa con el prompt "-More-" en la línea 25, esperando la entrada del teclado para continuar.

Por supuesto, desde que me mudé al mundo de Unix/Linux, casi instintivamente escribo:

MYFILE.TXT

que hace lo mismo que el filtro DOS More si resulta que estás usando Unix o Linux en ese momento... pero tristemente, ¡sólo te dará un error en DOS/Windows!

También puede resultar interesante que no pueda crear carpetas o archivos que coincidan con cualquier otro nombre de dispositivo de DOS, como COMx (donde x es un número de puerto serie, como en "COM1"), o LPTx (donde x es un número de impresora, como en "LPT1").

Ah, las alegrías de la compatibilidad con versiones anteriores. Han pasado casi 40 años y el DOS, con todas sus peculiares limitaciones, sigue entre nosotros.