Perché non si può creare una cartella chiamata CON in Windows o MS-DOS?

Questo risale ai primi giorni del DOS.

CON è una parola riservata nel sistema operativo DOS (e quindi nel moderno Windows a causa della retrocompatibilità).

In realtà è l'abbreviazione di "Console". La Console in DOS si riferisce all'input da tastiera e all'output del display locale. Il mio miglior ricordo dell'uso di CON è all'interno del comando DOS Copy, come in:

COPY CON MYFILE.TXT

Questo vi permetterà di creare un file di testo veloce e sporco (chiamato MYFILE.TXT in questo caso) senza l'uso di un editor di testo. Subito dopo aver digitato questo comando, il prompt del DOS è sostituito da un cursore lampeggiante. Potete quindi inserire il testo direttamente dalla vostra tastiera, e finire con Control-Z quando avete finito.

Una volta fatto questo, il DOS risponderà con:

1 File(s) Copied.

E il vostro file verrà creato nella directory corrente.

Questo era molto utile per creare cose come file batch e brevi script di configurazione. Tuttavia, soffre della grave limitazione che non è possibile correggere gli errori una volta che si preme invio e si passa alla riga successiva.

Oggi può sembrare strano che si ricorra alla creazione di un file in questo modo, dato che qualsiasi editor di testo di base è infinitamente più efficiente. Tuttavia, dovete ricordare che nei primi giorni del DOS, non c'erano dischi rigidi! Quindi, qualsiasi comando eseguito doveva essere un comando DOS nativo, o il programma eseguibile doveva risiedere da qualche parte su un floppy disk che si trovava nella macchina. Questo non era sempre conveniente. Quindi, copiare file dalla console era una parte della tua vita.

Puoi anche invertire questo comando, come in:

COPY MYFILE.TXT CON

che avrà come risultato la visualizzazione del contenuto di MYFILE.TXT sullo schermo.

Questo era/è quasi mai usato, comunque, come:

TYPE MYFILE.TXT

farà essenzialmente la stessa cosa, ed è più corto. E naturalmente, se il file è lungo più di 25 righe, allora è molto più utile convogliare l'output al filtro More, come in:

TYPE MYFILE.TXT | MORE

che visualizzerà il contenuto del file 24 righe alla volta, facendo una pausa con il prompt "-More-" sulla 25a riga, in attesa dell'input da tastiera per continuare.

Ovviamente, da quando mi sono trasferito nel mondo Unix/Linux, mi viene quasi istintivo digitare:

LESS MYFILE.TXT

che fa la stessa cosa del filtro DOS More se vi capita di usare Unix o Linux in quel momento... ma purtroppo, vi darà solo un errore in DOS/Windows!

Potreste anche trovare interessante il fatto che non potete creare cartelle o file che corrispondano a qualsiasi altro nome di dispositivo DOS, come COMx (dove x è un numero di porta seriale, come in "COM1"), o LPTx (dove x è un numero di stampante, come in "LPT1").

Ah, le gioie della compatibilità all'indietro. Sono passati quasi 40 anni e il DOS, con tutte le sue strane limitazioni, è ancora con noi!