Você não está usando o MS-DOS; não permitia nem mesmo extensões de arquivo com mais de 3 caracteres. Você está usando a linha de comando do Windows - o cmd.exe
shell, especificamente.
Mas o Windows realmente se esforça para permanecer compatível com os programas daquela época. Então, até o Windows 8 (ou algo parecido), todos os arquivos com extensões mais longas têm um alias que tem a extensão truncada, junto com o próprio nome.
Se você executar dir /x
, provavelmente verá que cada arquivo tem um "nome abreviado" atribuído a ele, que é limitado a 8 + 3 caracteres, assim como no MS-DOS e 16 bits Windows.
Esses nomes estão lá, caso o usuário queira, digamos, atualizar para o Windows 95 e ainda acessar seus arquivos através de programas originalmente escritos para o Windows 3.1 - assim, rodar um programa de 16 bits não trava, mas apenas mostra C:\PROGRA~1
e C:\MYDOCU~1\CALENDAR.TXT
no lugar de C:\Program Files
e C:\My Documents\Calendar.txt
.
(E sim, algumas pessoas realmente usaram software antigo de 16 bits mesmo no Windows XP / Vista dias ... Eu tenho certeza que o Windows 8 desativa os "nomes curtos" por padrão, no entanto. @EBGreen não está vendo o mesmo 'problema' ...)
Outra coisa a considerar é que o shell antigo do Windows, cmd.exe
, desenvolveu algumas peculiaridades e correções de compatibilidade em si. Por exemplo, devido à maneira como o MS-DOS correspondia aos nomes de arquivos, dir .txt
significava o mesmo que dir *.txt
, mesmo que não fosse intencional. Mas as pessoas se acostumaram com a sintaxe mais curta, e mesmo que o sistema operacional Windows não trate mais .txt
como curinga, cmd.exe
Ainda aceita essa sintaxe . (O comando dir
não é um programa por si só, mas embutido no shell.)
(Da mesma forma, no artigo vinculado, outra peculiaridade de curinga é descrita - nomes de arquivos do Windows podem ter extensão no , mas as pessoas estão realmente acostumadas a digitar *.*
, portanto significa a mesma coisa como *
e o ponto solitário é ignorado.)