Qual é a diferença entre barras e barras invertidas nos caminhos? [duplicado]


9

Duplicata Possível:
Por que o Windows usa barras invertidas para caminhos e barras invertidas Unix?

Qual é a principal diferença entre barra (/) e barra invertida (\) em referência a caminhos, remotos e locais?

Se bem me lembro, a barra invertida é usada para denotar algo dentro do computador ou rede atual, como C: \ Windows ou \\ 172.12.1.34, enquanto barras são usadas para denotar algo que está fora ou externo ao computador ou rede atual, como Como http://www.google.com/ .

Eu gostaria de saber se esta é uma explicação precisa ou se a diferença é realmente mais profunda do que isso, e os exemplos que dei são apenas coincidentes.


3
janelas '\' resto do mundo '/'
mic84

1
Você realmente deveria ler as respostas que já estão aqui, mic84. Eles já mostraram que isso não é verdade.
JdeBP

Eu deixei cair e tentei remover desculpe, eu estive sentado aqui com esta página aberta pensando que foi cancelada
mic84

Respostas:


11

O Unix e suas variantes sempre usaram a barra (/) para denotar a hierarquia do sistema de arquivos.

No entanto, o Windows deve seu delimitador de sistema de arquivos, a barra invertida (\), ao seu predecessor do MS-DOS. E o MS-DOS não foi o criador disso. Ele foi trazido do sistema operacional QDOS (que emprestou do CP / M), que a MS comprou e reformulou no MS-DOS.

Como a maioria dos protocolos baseados na Web, se não todos, originados no UNIX (HTTP, FTP, etc.), a Microsoft está em conformidade com esses delimitadores para manter a compatibilidade.


1
MS não comprou CP / M. A MS comprou o QDOS (Quick e Dirty DOS), que era um simples clone do CP / M, e foi reformulado no MS-DOS.
Keith

@keith - você está correto. Corrigido minha resposta.
Keltari

4

Isso não é uma explicação precisa. O separador de caminho é apenas um caractere, um token, que é um pouco arbitrário, mas geralmente escolhido para marcar uma separação natural. A barra invertida como separador de caminho vem da linhagem CP / M, DOS e Windows. A barra vem do Unix e possivelmente de outros sistemas anteriores.

O separador de caminho de URL da Internet foi escolhido para ser a barra, já que a maioria dos desenvolvedores dos padrões estava familiarizada com o Unix. A barra Unix como separador de caminho é geralmente considerada o separador canônico. Sua posição no teclado também facilita a digitação para a maioria das pessoas que precisam digitar muito.

Mesmo as linguagens de script entre plataformas, como o Python, usam a barra como a "forma normalizada" de especificar caminhos.


1
Observe também o DCL no VMS. Qualificadores são precedidos por barras , assim como no da Microsoft command.
JdeBP

2

Em um nível de implementação, o Windows manipulará '/' da mesma maneira que '\'. Eu usaria apenas o '/'. Ele fará todos os aplicativos portáteis. MySQL e python também traduzem o '/' para o que você precisa em seu sistema, dependendo de qual separador de caminho ele usa.

O '\' é usado em outras áreas, como expressões regulares, e alguns terminais e linguagens de programação como um escape char. Isso garantirá que o próximo caractere seguinte seja interpretado como um caractere literal, como \ n \ r no final das linhas.

Quanto à notação em relação a sistemas internos ou externos, isso não é verdade. O '/' foi mais popular no início com os sistemas * nix. A Microsoft então se tornou popular e agora '\' é o que as pessoas esperam. Mas como eu mencionei, a Microsoft tem que ser posix (posix um padrão sobre como os sistemas operacionais devem operar) compatível, o que significa que você poderia substituir todo o '\' com '/' na maioria dos lugares e tudo funcionaria sem problemas.


0

Principalmente é apenas convenção.

Windows parece favorecer '\' enquanto Linux e Unix parecem favorecer '/'

Você pode ler em detalhes sobre caminhos e as várias notações usadas em diferentes sistemas Wikipedia .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.