Questão Por que o Windows usa barras invertidas para caminhos e barras invertidas Unix?


Incomoda-me ter usado o Unix na faculdade e agora trabalhando no lado do Windows. Qual é a história por trás dessa decisão? Alguém sabe porque funcionou assim?


82


origem


Slash versus barra invertida como separador de diretório - o que / quem causou essa falha? - phuclv


Respostas:


Unix introduzido / como o separador de diretórios por volta de 1970. Eu não sei porque exatamente esse caractere foi escolhido; o sistema ancestral Multics usado >, mas os designers do Unix já usaram > junto com < para redirecionamento no shell (veja Por que o diretório raiz é denotado por um / placa?).

MS-DOS 2.0 introduzido \ como o separador de diretório no início dos anos 80. O motivo / não foi usado é que o MS-DOS 1.0 (que não suportava diretórios de todo) já estava usando / para introduzir opções de linha de comando. Demorou esse uso de / a partir de CP / M, que tirou de VMS. Você pode ler uma explicação mais detalhada sobre por que essa escolha foi feita no blog de Larry Osterman (O MS-DOS ainda tinha uma opção para alterar o caractere de opção para - e o separador de diretório para /, mas não ficou.

/ ele é reconhecido pela maioria das APIs em nível de programador (em todas as versões do DOS e do Windows). Então você pode frequentemente, mas nem sempre se safar usando / como um separador de diretórios no Windows. Uma exceção notável é que você não pode usar / como um separador após o \\? prefixo que (mesmo no Windows 7) é a única maneira de especificar um caminho usando Unicode ou contendo mais de 260 caracteres.

Alguns elementos da interface do usuário suportam / como um separador de diretórios no Windows, mas não em todos. Alguns programas simplesmente passam nomes de arquivos para a API subjacente, então eles suportam / e \ indiferentemente. No interpretador de comandos (em command.com ou cmd), você pode usar / em muitos casos, mas nem sempre; isso é parcialmente dependente da versão do Windows (por exemplo, cd /windows funciona no XP e 7, mas não no Windows 9x). A caixa de entrada do caminho do Explorer aceita / (pelo menos do XP para cima; provavelmente porque também aceita URLs). Por outro lado, o diálogo padrão de abertura de arquivos rejeita barras.


96



/ é reconhecido como um separador de diretório pela linha de comando do MS-DOS ou do Windows. - Tom Wijsman
"C: \ Windows \ System32> cd / windows / system" funciona. - Andrew J. Brehm
@TomWij: Você tem uma referência para onde precisamente / é aceito na linha de comando? Por exemplo, o que dir /p Faz? e dir c:/p? e c:/windows/notepad.exe? e start /windows/notepad.exe? etc (eu não tenho uma máquina Windows aqui para testar.) - Gilles
/ Provavelmente foi usado como o separador de diretórios no UNIX, porque era uma tecla fácil (não deslocada) para atacar um Teletipo. Os caracteres especiais não mudados eram : - ; , . /. - Daniel R Hicks
Curiosamente, recentemente pesquisei fontes e manuais do DOS 1 e 2 e descobri que a Microsoft usava / (e - para switches) como o Xenix, e inspirado no Xenix, mas a IBM lançou antes da Microsoft enviar para OEMs, e a IBM usou ` (and / `para switches) e alterou o prompt de A: para A> então eles mudaram o padrão e enviaram o buggy (ainda assumindo //-) documentação mais uma nota que foi alterada e por quê. - mirabilos


o API do Windows subjacente pode aceitar a barra invertida ou barra para separar o diretório e os componentes de arquivo de um caminho, mas a convenção da Microsoft é usar uma barra invertida e as APIs que retornam caminhos colocam a barra invertida.

MS-DOS 2.0 copiou o sistema de arquivos hierárquico do Unix e, portanto, usou a barra, mas (possivelmente por insistência de IBM) adicionou a barra invertida para permitir que os caminhos fossem digitados no shell de comando, mantendo a compatibilidade com MS-DOS 1.0 e CP / M onde a barra era o indicador de opção da linha de comando.

Comparar

dir/w

que mostra o diretório atual em formato largo contra

dir\w

que executa o w arquivo no diretor dir.

Referências:


8