Jaka jest różnica między ukośnikami do przodu i odwrotnymi ukośnikami na ścieżkach? [duplikować]

9

Możliwa duplikat:
Dlaczego system Windows używa ukośników odwrotnych do ścieżek i ukośników uniksowych?

Jaka jest główna różnica między ukośnikiem do przodu (/) i ukośnikiem odwrotnym (\) w odniesieniu do ścieżek, zarówno zdalnych, jak i lokalnych?

Jeśli dobrze pamiętam, ukośnik odwrotny służy do oznaczenia czegoś w bieżącym komputerze lub sieci, takiego jak C: \ Windows lub \\ 172.12.1.34, podczas gdy ukośniki do przodu służą do oznaczenia czegoś, co znajduje się na zewnątrz lub na zewnątrz bieżącego komputera lub sieci, np. jako http://www.google.com/ .

Chciałbym wiedzieć, czy to dokładne wyjaśnienie, czy też różnica jest głębsza niż ta, a podane przeze mnie przykłady są przypadkowe.

Sean
źródło
3
windows '\' reszta świata '/'
mic84
1
Naprawdę powinieneś przeczytać odpowiedzi, które już tu są, mic84. Pokazali już, że to nieprawda.
JdeBP,
wpuściłem go i próbowałem usunąć przepraszam, siedzę tutaj z otwartą stroną, myśląc, że został anulowany przepraszam
mic84

Odpowiedzi:

11

Uniks i jego warianty zawsze używały ukośnika (/) do oznaczenia hierarchii systemu plików.

Jednak system Windows zawdzięcza ogranicznik systemu plików, ukośnik odwrotny (\) swojemu poprzednikowi MS-DOS. A MS-DOS nie był tego pomysłodawcą. Został przeniesiony z systemu operacyjnego QDOS (który pożyczył od CP / M), który MS kupił i przerobił na MS-DOS.

Ponieważ większość protokołów internetowych, jeśli nie wszystkie, pochodzi z systemu UNIX (HTTP, FTP itp.), Firma Microsoft przestrzega tych ograniczników, aby zachować zgodność.

Keltari
źródło
1
Państwa członkowskie nie kupiły CP / M. MS kupiło QDOS (Quick and Dirty DOS), który był prostym klonem CP / M, i przerobiło to na MS-DOS.
Keith,
@keith - ur poprawny. Naprawiłem moją odpowiedź.
Keltari,
4

To nie jest dokładne wyjaśnienie. Separator ścieżek to po prostu znak, token, który jest nieco arbitralny, ale zwykle jest wybierany w celu oznaczenia naturalnego rozdzielenia. Odwrotny ukośnik jako separator ścieżek pochodzi z linii CP / M, DOS i Windows. Slash pochodzi z Unixa i prawdopodobnie innych systemów przed nim.

Separator ścieżek internetowych adresów URL został wybrany jako ukośnik, ponieważ większość twórców standardów zna system Unix. Ukośnik uniksowy jako separator ścieżki jest zwykle uważany za separator kanoniczny. Jego pozycja na klawiaturze ułatwia także pisanie większości osób, które często go wpisują.

Nawet wieloplatformowe języki skryptowe, takie jak Python, używają ukośnika to „znormalizowana forma” określania ścieżek.

Keith
źródło
1
Zauważ też DCL w VMS. Kwalifikatory są poprzedzone ukośnikami , tak jak w Microsoft command.
JdeBP,
2

Na poziomie implementacji Windows będzie obsługiwał „/” w taki sam sposób, jak „\”. Chciałbym po prostu użyć „/”. Sprawi, że wszystkie twoje aplikacje będą przenośne. MySQL i Python tłumaczą również „/” na to, czego potrzebujesz w twoim systemie, w zależności od tego, jakiego separatora ścieżek używają.

„\” Jest używany w innych obszarach, takich jak wyrażenia regularne, a także w niektórych terminalach i językach programowania jako znak zmiany znaczenia. Zapewni to, że następny znak po nim zostanie zinterpretowany jako dosłowny znak, taki jak \ n \ r na końcu linii.

W zakresie, w jakim notacja dotycząca systemów wewnętrznych lub zewnętrznych jest nieprawdziwa. „/” Był bardziej popularny na początku w systemach * nix. Microsoft stał się wtedy popularny i teraz „\” jest tym, czego ludzie oczekują. Ale jak wspomniałem, Microsoft musi być zgodny z POSIX-em (POSIX standardem działania systemów operacyjnych), co oznacza, że ​​możesz zastąpić wszystkie „\” przez „/” w większości miejsc i wszystko działałoby bez problemów.

nelaaro
źródło
0

Przeważnie jest to tylko konwencja.

Windows wydaje się faworyzować „\”, podczas gdy Linux i Unix wydają się faworyzować „/”

Możesz szczegółowo przeczytać o ścieżkach i różnych notacjach używanych w różnych systemach na Wikipedii .

MaQleod
źródło