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

83

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?

    
por jrsconfitto 16.08.2010 / 15:37

2 respostas

97

O Unix introduziu / como o separador de diretórios por volta de 1970. Não sei porque esse caractere exato foi escolhido; o sistema ancestral Multics usou > , mas os projetistas do Unix já usaram > junto com < para redirecionamento no shell (veja Por que o diretório raiz é representado por um sinal / ? ).

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

/ é reconhecido pela maioria das APIs no nível do programador (em todas as versões do DOS e do Windows). Assim, você pode frequentemente, mas nem sempre usar o / 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 arquivo aberto rejeita barras .

    
por 16.08.2010 / 16:02
9

A API do Windows subjacente pode aceitar a barra invertida ou a 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 da 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.

Compare

dir/w

que mostra o diretório atual em formato largo em relação a

dir\w

que executa o arquivo w no diretor dir .

Referências:

por 16.08.2010 / 15:52